@@ -244,7 +244,7 @@ def test_fields_auto_id(self):
244
244
('*.id' ,
245
245
{'foo' :{'id' : 1 },
246
246
'baz' : 2 },
247
- set (['1' , 'baz' ])) ])
247
+ set ([1 , 'baz' ])) ])
248
248
249
249
def test_root_auto_id (self ):
250
250
jsonpath .auto_id_field = 'id'
@@ -267,6 +267,19 @@ def test_index_auto_id(self):
267
267
self .check_cases ([('[0].id' , [42 ], ['[0]' ]),
268
268
('[2].id' , [34 , 65 , 29 , 59 ], ['[2]' ])])
269
269
270
+ def test_nested_index_auto_id (self ):
271
+ jsonpath .auto_id_field = "id"
272
+ data = {
273
+ "id" : 1 ,
274
+ "b" : {'id' : 'bid' , 'name' : 'bob' },
275
+ "m" : [
276
+ {'a' : 'a1' }, {'a' : 'a2' , 'id' : 'a2id' }
277
+ ]
278
+ }
279
+ self .check_cases ([('m.[1].id' , data , ['a2id' ]),
280
+ ('m.[1].$.b.id' , data , ['bid' ]),
281
+ ('m.[0].id' , data , ['1.m.[0]' ])])
282
+
270
283
def test_slice_auto_id (self ):
271
284
jsonpath .auto_id_field = "id"
272
285
self .check_cases ([ ('[*].id' , [1 , 2 , 3 ], ['[0]' , '[1]' , '[2]' ]),
@@ -277,7 +290,7 @@ def test_child_auto_id(self):
277
290
self .check_cases ([('foo.baz.id' , {'foo' : {'baz' : 3 }}, ['foo.baz' ]),
278
291
('foo.baz.id' , {'foo' : {'baz' : [3 ]}}, ['foo.baz' ]),
279
292
('foo.baz.id' , {'foo' : {'id' : 'bizzle' , 'baz' : 3 }}, ['bizzle.baz' ]),
280
- ('foo.baz.id' , {'foo' : {'baz' : {'id' : 'hi' }}}, ['foo. hi' ]),
293
+ ('foo.baz.id' , {'foo' : {'baz' : {'id' : 'hi' }}}, ['hi' ]),
281
294
('foo.baz.bizzle.id' , {'foo' : {'baz' : {'bizzle' : 5 }}}, ['foo.baz.bizzle' ])])
282
295
283
296
def test_descendants_auto_id (self ):
0 commit comments