def test_load_modification(self): self.configure({ "execution": { "concurrency": 50, "hold-for": "30s", "scenario": { "script": get_res_path("http_simple.xml"), } } }) self.obj.settings.merge({ "path": get_res_path(TOOL_NAME), }) self.obj.prepare() original_config = TsungConfig(None) original_config.load(get_res_path("http_simple.xml")) original_load = original_config.find('//tsung/load')[0] modified_config = TsungConfig(None) modified_config.load(self.obj.tsung_config) loads = modified_config.find('//tsung/load') self.assertEqual(len(loads), 1) modified_load = loads[0] self.assertNotEqual(etree.tostring(original_load), etree.tostring(modified_load)) self.assertEqual(modified_load.get('duration'), '30')
def save(self, filename): self.log.debug("Saving Tsung config to: %s", filename) with open(filename, "wb") as fhd: tsung_dtd = self.tool.get_dtd_path() self.log.debug("Detected Tsung DTD: %s", tsung_dtd) doctype = '<!DOCTYPE tsung SYSTEM "%s">' % tsung_dtd xml = etree.tostring(self.tree, pretty_print=True, encoding="UTF-8", xml_declaration=True, doctype=doctype) fhd.write(xml)
def test_no_load_no_modication(self): # if load profile is not specified - original tsung config's <load> shouldn't be modified self.obj.execution.merge( {"scenario": { "script": get_res_path("http_simple.xml"), }}) self.obj.settings.merge({ "path": get_res_path(TOOL_NAME), }) self.obj.prepare() original_config = TsungConfig(None) original_config.load(get_res_path("http_simple.xml")) original_load = original_config.find('//tsung/load')[0] modified_config = TsungConfig(None) modified_config.load(self.obj.tsung_config) loads = modified_config.find('//tsung/load') self.assertEqual(len(loads), 1) modified_load = loads[0] self.assertEqual(etree.tostring(original_load), etree.tostring(modified_load))