import sys, os, cStringIO
p = os.path.join("..","..")
sys.path.append(p)
import profile_util
from Ft.Server.Common import ResourceTypes
from Ft.Server.Server.Http import Basic
from Ft.Server.Server import ConfigParser
from Ft.Server.Server.Lib import LogUtil
class FakeFile:
def __init__(self):
self.data = ""
def write(self,data):
self.data += data
def close(self):
pass
def flush(self):
pass
def do_fetch():
#Pretend it is a vhost connect, easiest to fake out
aCon = cStringIO.StringIO()
rFile = cStringIO.StringIO()
wFile = FakeFile()
connection = (aCon,rFile,wFile)
aRequest = "HTTP/1.0 GET /profile/doc1.xml" #Doesn't need to be correct, just there
method = "GET"
unparsed_uri = "/profile/doc1.xml"
protocol = "HTTP/1.0"
request = (aRequest,method,unparsed_uri,protocol)
headers_in = {}
conn = (connection,request,headers_in)
client_address = ('local',123) #Just needs to be sciptable
server = ConfigParser.ServerConfig()
server.documentRoot = '/'
server.errorLog = LogUtil.NullLogger()
server.properties = profile_util.GetProperties()
h = Basic.RequestHandler(conn,client_address,server)
h.handle()
NUM_CHILDREN = 2500
XML_SRC = """Foo%sBar""" % (""*NUM_CHILDREN)
def do_profile():
#Init
repo = profile_util.GetRepo()
if repo.hasResource('/profile'):
repo.deleteResource('/profile')
repo.createContainer('/profile',1)
repo.createDocument('/profile/doc1.xml',XML_SRC,forcedType=ResourceTypes.ResourceType.XML_DOCUMENT)
repo.txCommit()
profile_util.run("do_fetch()",globals(),locals())
if __name__ == '__main__':
profile_util.InitRepo()
do_profile()