in src/manager.py [0:0]
def readXML(self, serverfile, testfiles, ssl, all, moresubs={}):
self.message("trace", "Reading Server Info from \"{s}\"".format(s=serverfile))
# Open and parse the server config file
try:
tree = ElementTree(file=serverfile)
except ExpatError, e:
raise RuntimeError("Unable to parse file '%s' because: %s" % (serverfile, e,))
# Verify that top-level element is correct
serverinfo_node = tree.getroot()
if serverinfo_node.tag != src.xmlDefs.ELEMENT_SERVERINFO:
raise EX_INVALID_CONFIG_FILE
if not len(serverinfo_node):
raise EX_INVALID_CONFIG_FILE
self.server_info.parseXML(serverinfo_node)
# Setup ssl stuff
self.server_info.ssl = ssl
self.server_info.port = self.server_info.sslport if ssl else self.server_info.nonsslport
self.server_info.port2 = self.server_info.sslport2 if ssl else self.server_info.nonsslport2
self.server_info.certdir = os.path.join(self.base_dir, self.server_info.certdir) if self.server_info.certdir else ""
moresubs["$host:"] = "%s://%s" % (
"https" if ssl else "http", self.server_info.host,
)
if (ssl and self.server_info.port != 443) or (not ssl and self.server_info.port != 80):
moresubs["$host:"] += ":%d" % (self.server_info.port,)
moresubs["$hostssl:"] = "https://%s" % (self.server_info.host,)
if self.server_info.sslport != 443:
moresubs["$hostssl:"] += ":%d" % (self.server_info.sslport,)
moresubs["$host2:"] = "%s://%s" % (
"https" if ssl else "http",
self.server_info.host2,
)
if (ssl and self.server_info.port2 != 443) or (not ssl and self.server_info.port2 != 80):
moresubs["$host2:"] += ":%d" % (self.server_info.port2,)
moresubs["$hostssl2:"] = "https://%s" % (self.server_info.host2,)
if self.server_info.sslport2 != 443:
moresubs["$hostssl2:"] += ":%d" % (self.server_info.sslport2,)
self.server_info.addsubs(moresubs)
from src.caldavtest import caldavtest
def _loadFile(fname, ignore_root=True):
# Open and parse the config file
try:
tree = ElementTree(file=fname)
except ExpatError, e:
raise RuntimeError("Unable to parse file '%s' because: %s" % (fname, e,))
caldavtest_node = tree.getroot()
if caldavtest_node.tag != src.xmlDefs.ELEMENT_CALDAVTEST:
if ignore_root:
self.message("trace", "Ignoring file \"{f}\" because it is not a test file".format(f=fname))
return None
else:
raise EX_INVALID_CONFIG_FILE
if not len(caldavtest_node):
raise EX_INVALID_CONFIG_FILE
self.message("Reading Test Details from \"{f}\"".format(f=fname))
if self.base_dir:
fname = fname[len(self.base_dir) + 1:]
test = caldavtest(self, fname)
test.parseXML(caldavtest_node)
return test
for ctr, testfile in enumerate(testfiles):
self.message("load", testfile, ctr + 1, len(testfiles))
# Open and parse the config file
test = _loadFile(testfile)
if test is None:
continue
# ignore if all mode and ignore-all is set
if not all or not test.ignore_all:
self.tests.append(test)
if self.pretest is not None:
self.pretest = _loadFile(self.pretest, False)
if self.posttest is not None:
self.posttest = _loadFile(self.posttest, False)
self.message("load", None, ctr + 1, len(testfiles))