示例#1
0
 def test_get_raises_better_list_access_exception(self):
     obj = Traverser([])
     with self.assertRaises(ValueError):
         obj.get('bad')
     value = {'root': []}
     obj = Traverser(value)
     with self.assertRaises(ValueError):
         obj.get('root.bad')
示例#2
0
 def test_set_creates_list(self):
     value = {'root': {'stuff': {'users': [{'username': '******'}]}}}
     obj = Traverser(value)
     obj.set('root.stuff.parts.0.auto', 'any')
     self.assertEqual(obj.get('root.stuff.parts.0.auto'), 'any')
示例#3
0
 def test_set_updates_existing_node(self):
     value = {'root': {'users': [{'username': '******'}]}}
     obj = Traverser(value)
     obj.set('root.users', 'any')
     self.assertEqual(obj.get('root.users'), 'any')
示例#4
0
 def test_get_supports_dot_escaping(self):
     value = {'root': {'@xsi.type': 'field'}}
     obj = Traverser(value)
     self.assertEqual(obj.get('*****@*****.**'), 'field')
示例#5
0
 def test_get_forgives_missing_node(self):
     value = {'root': {'users': [{'username': '******'}]}}
     obj = Traverser(value)
     self.assertIsNone(obj.get('root.places'))
示例#6
0
 def test_get_traverses_list(self):
     value = {'root': {'users': [{'username': '******'}]}}
     obj = Traverser(value)
     self.assertEqual(obj.get('root.users.0.username'), 'jdoe')
示例#7
0
 def test_get_finds_node(self):
     value = {'root': {'users': [{'username': '******'}]}}
     obj = Traverser(value)
     self.assertEqual(obj.get('root.users')(), [{'username': '******'}])