def test_creation(self): definition = DefinitionElement() self.assertTrue(isinstance(definition, Definition)) definition = DefinitionElement('name') self.assertTrue(isinstance(definition, Definition)) definition = DefinitionElement('name', {'value': 'value'}) self.assertTrue(isinstance(definition, Definition))
def test_to_string_definitions(self): config = MyServerConfig([ DefinitionElement('a'), DefinitionTree( definitions=[DefinitionElement('b'), DefinitionElement('c')]) ]) copy = MyServerConfig.from_lxml_element(config.to_lxml_element()) self.assertEqual(config, copy)
def setUp(self): self.definitions = [] self.definitions.append( DefinitionElement('http.use_error_file', {'value': 'YES'})) self.definitions.append( DefinitionElement('http.error.file.404', {'value': '404.html'})) self.definitions.append( DefinitionTree('http.default_file', [ DefinitionElement(attributes={'value': 'index.html'}), DefinitionElement(attributes={'value': 'index.htm'}) ]))
def test_value(self): definition = DefinitionElement('name', {'value': 'x'}) self.assertEqual('x', definition.get_attribute('value')) definition.set_attribute('value', 'y') self.assertEqual('y', definition.get_attribute('value')) definition.set_attribute('value', None) self.assertEqual(None, definition.get_attribute('value')) definition.remove_attribute('value') self.assertRaises(KeyError, definition.get_attribute, 'value') definition = DefinitionElement() self.assertRaises(KeyError, definition.get_attribute, 'value')
def test_search_by_name(self): element_0 = DefinitionElement('a') element_1 = DefinitionElement('b') element_2 = DefinitionElement('a') tree = DefinitionTree('x', definitions = [element_0, element_1, element_2]) self.assertEqual(element_1, tree.search_by_name('b')) self.assertEqual(element_2, tree.search_by_name('a')) self.assertEqual(None, tree.search_by_name('c')) self.assertEqual(tree, tree.search_by_name('x')) tree = DefinitionTree('b', definitions = [element_0, element_1, element_2]) self.assertEqual(element_1, tree.search_by_name('b'))
def test_search_by_name(self): def_list = DefinitionList() self.assertEqual(None, def_list.search_by_name('x')) element_0 = DefinitionElement('x') def_list.add_definition(element_0) self.assertEqual(element_0, def_list.search_by_name('x')) element_1 = DefinitionElement('x') def_list.add_definition(element_1) self.assertEqual(element_1, def_list.search_by_name('x')) element_2 = DefinitionElement('x') tree_1 = DefinitionTree('t', definitions = [element_2]) self.assertEqual(element_2, def_list.search_by_name('x')) def_list.add_definition(element_1) self.assertEqual(element_1, def_list.search_by_name('x'))
def test_from_lxml_definitions(self): text = '''<MYSERVER> <DEFINE name="a" /> <DEFINE> <DEFINE name="b" /> <DEFINE name="c" /> </DEFINE> </MYSERVER>''' config = MyServerConfig.from_lxml_element(etree.XML(text)) right = MyServerConfig([ DefinitionElement('a'), DefinitionTree( definitions=[DefinitionElement('b'), DefinitionElement('c')]) ]) self.assertEqual(config, right)
def test_equality(self): self.assertEqual(DefinitionElement('name', {'some': 'attributes'}), DefinitionElement('name', {'some': 'attributes'})) self.assertNotEqual(DefinitionElement('name1'), DefinitionElement('name2')) self.assertNotEqual(DefinitionElement('name', {'attribute': '1'}), DefinitionElement('name', {'attribute': '2'})) self.assertNotEqual(DefinitionElement(), 'different type')
def test_definitions(self): def_list = DefinitionList() self.assertEqual([], def_list.get_definitions()) counter = 0 for definition in self.definitions: def_list.add_definition(definition) counter += 1 self.assertEqual(self.definitions[:counter], def_list.get_definitions()) for counter in xrange(len(self.definitions)): self.assertEqual(self.definitions[counter], def_list.get_definition(counter)) def_list.add_definition(DefinitionElement('test'), 1) self.assertEqual(DefinitionElement('test'), def_list.get_definition(1)) def_list.remove_definition(1) self.assertEqual(self.definitions, def_list.get_definitions()) for counter in xrange(len(self.definitions)): def_list.remove_definition(0) self.assertEqual(self.definitions[counter + 1:], def_list.get_definitions())
def test_definitions(self): config = MyServerConfig() self.assertEqual([], config.get_definitions()) counter = 0 for definition in self.definitions: config.add_definition(definition) counter += 1 self.assertEqual(self.definitions[:counter], config.get_definitions()) for counter in xrange(len(self.definitions)): self.assertEqual(self.definitions[counter], config.get_definition(counter)) config.add_definition(DefinitionElement('test'), 1) self.assertEqual(DefinitionElement('test'), config.get_definition(1)) config.remove_definition(1) self.assertEqual(self.definitions, config.get_definitions()) for counter in xrange(len(self.definitions)): config.remove_definition(0) self.assertEqual(self.definitions[counter + 1:], config.get_definitions())
def test_from_lxml(self): text = '<DEFINE />' definition = DefinitionElement.from_lxml_element(etree.XML(text)) right = DefinitionElement() self.assertEqual(definition, right)
def setUp(self): self.definitions = [] self.definitions.append(DefinitionElement('a')) self.definitions.append(DefinitionElement('b')) self.definitions.append(DefinitionElement('c'))
def test_search_by_name(self): definition = DefinitionElement('a') self.assertEqual(None, definition.search_by_name('b')) self.assertEqual(definition, definition.search_by_name('a'))
def setUp(self): self.element_0 = DefinitionElement('test', {'value': 'x'}) self.element_1 = DefinitionElement(attributes = {'a': 'b', 'b': 'c'})
def test_from_string_name(self): text = '<DEFINE name="test" />' definition = DefinitionElement.from_string(text) right = DefinitionElement(name = "test") self.assertEqual(definition, right)
def test_to_lxml_full(self): definition = DefinitionElement('test', {'value': 'x', 'a': 'b'}) copy = DefinitionElement.from_lxml_element(definition.to_lxml_element()) self.assertEqual(definition, copy)
def test_from_xml_name(self): text = '<DEFINE name="test" />' definition = DefinitionElement.from_lxml_element(etree.XML(text)) right = DefinitionElement(name = "test") self.assertEqual(definition, right)
def test_from_lxml_attributes(self): text = '<DEFINE a="b" b="c" value="x" />' definition = DefinitionElement.from_lxml_element(etree.XML(text)) right = DefinitionElement(attributes = {'a': 'b', 'b': 'c', 'value': 'x'}) self.assertEqual(definition, right)
def test_to_string_attributes(self): definition = DefinitionElement(attributes = {'a': 'b', 'b': 'c', 'value': 'x'}) copy = DefinitionElement.from_string(str(definition)) self.assertEqual(definition, copy)
def test_to_string_name(self): definition = DefinitionElement(name = 'test') copy = DefinitionElement.from_string(str(definition)) self.assertEqual(definition, copy)
def test_from_lxml_full(self): text = '<DEFINE name="test" value="x" a="b" />' definition = DefinitionElement.from_lxml_element(etree.XML(text)) right = DefinitionElement('test', {'value': 'x', 'a': 'b'}) self.assertEqual(definition, right)
def test_to_lxml_name(self): definition = DefinitionElement(name = 'test') copy = DefinitionElement.from_lxml_element(definition.to_lxml_element()) self.assertEqual(definition, copy)
def test_to_lxml_attributes(self): definition = DefinitionElement(attributes = {'a': 'b', 'b': 'c', 'value': 'x'}) copy = DefinitionElement.from_lxml_element(definition.to_lxml_element()) self.assertEqual(definition, copy)
def test_to_string_full(self): definition = DefinitionElement('test', {'value': 'x', 'a': 'b'}) copy = DefinitionElement.from_string(str(definition)) self.assertEqual(definition, copy)
def test_from_string(self): text = '<DEFINE />' definition = DefinitionElement.from_string(text) right = DefinitionElement() self.assertEqual(definition, right)