diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_jsonpath.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/tests/test_jsonpath.py b/tests/test_jsonpath.py index 33c0ea6..8f4ae3c 100644 --- a/tests/test_jsonpath.py +++ b/tests/test_jsonpath.py @@ -244,7 +244,7 @@ class TestJsonPath(unittest.TestCase): ('*.id', {'foo':{'id': 1}, 'baz': 2}, - set(['1', 'baz'])) ]) + set([1, 'baz'])) ]) def test_root_auto_id(self): jsonpath.auto_id_field = 'id' @@ -267,6 +267,19 @@ class TestJsonPath(unittest.TestCase): self.check_cases([('[0].id', [42], ['[0]']), ('[2].id', [34, 65, 29, 59], ['[2]'])]) + def test_nested_index_auto_id(self): + jsonpath.auto_id_field = "id" + data = { + "id": 1, + "b": {'id': 'bid', 'name': 'bob'}, + "m": [ + {'a': 'a1'}, {'a': 'a2', 'id': 'a2id'} + ] + } + self.check_cases([('m.[1].id', data, ['a2id']), + ('m.[1].$.b.id', data, ['bid']), + ('m.[0].id', data, ['1.m.[0]'])]) + def test_slice_auto_id(self): jsonpath.auto_id_field = "id" self.check_cases([ ('[*].id', [1, 2, 3], ['[0]', '[1]', '[2]']), @@ -277,7 +290,7 @@ class TestJsonPath(unittest.TestCase): self.check_cases([('foo.baz.id', {'foo': {'baz': 3}}, ['foo.baz']), ('foo.baz.id', {'foo': {'baz': [3]}}, ['foo.baz']), ('foo.baz.id', {'foo': {'id': 'bizzle', 'baz': 3}}, ['bizzle.baz']), - ('foo.baz.id', {'foo': {'baz': {'id': 'hi'}}}, ['foo.hi']), + ('foo.baz.id', {'foo': {'baz': {'id': 'hi'}}}, ['hi']), ('foo.baz.bizzle.id', {'foo': {'baz': {'bizzle': 5}}}, ['foo.baz.bizzle'])]) def test_descendants_auto_id(self): |