def test_should_return_list_of_elements(self): element = XmlElement( {'root': { 'child': [{ 'name': 'John' }, { 'name': 'Mary' }] }}) child1, child2 = element.get('/root/child') self.assertIsInstance(child1, XmlElement) self.assertIsInstance(child2, XmlElement) self.assertDictEqual({'name': 'John'}, child1.value) self.assertDictEqual({'name': 'Mary'}, child2.value)
def test_should_wrap_single_element(self): element = XmlElement({'element': 'value'}) self.assertEqual('value', element.get('/element')) self.assertListEqual(['value'], element.get_list('/element'))
def test_should_ignore_leading_and_trailing_slash(self): element = XmlElement({'root': {'child': {'child': 'value'}}}) self.assertEqual('value', element.get('root/child/child/'))
def test_should_return_none_on_wrong_xpath(self): element = XmlElement({'root': {'child': {'child': 'value'}}}) self.assertIsNone(element.get('/no/such/@element'))
def test_should_get_child_recursively(self): element = XmlElement({'root': {'child': {'child': 'value'}}}) self.assertEqual('value', element.get('/root/child/child'))