@@ -229,17 +229,18 @@ def test_path_star():
229
229
# multi-paths eat errors
230
230
assert glom (val , Path ('a' , T .__star__ (), T .b )) == []
231
231
val = [[[1 ]]]
232
- assert glom (val , '**' ) == [ [[1 ]], [1 ], 1 ]
233
- val = {'a' : [{'b' : [{'c' : 1 }, {'c' : 2 }, {'d' : {'c' : 3 }}]}]}
234
- assert glom (val , '**.c' ) == [1 , 2 , 3 ]
232
+ assert glom (val , '**' ) == [val , [[1 ]], [1 ], 1 ]
233
+ val = {'a' : [{'b' : [{'c' : 1 }, {'c' : 2 }, {'d' : {'c' : 3 }}]}], 'c' : 4 }
234
+ assert glom (val , '**.c' ) == [4 , 1 , 2 , 3 ]
235
235
assert glom (val , 'a.**.c' ) == [1 , 2 , 3 ]
236
236
assert glom (val , T ['a' ].__starstar__ ()['c' ]) == [1 , 2 , 3 ]
237
237
assert glom (val , 'a.*.b.*.c' ) == [[1 , 2 ]]
238
238
# errors
239
239
class ErrDict (dict ):
240
240
def __getitem__ (key ): 1 / 0
241
241
assert ErrDict (val ).keys () # it will try to iterate
242
- assert glom (ErrDict (val ), '**' ) == []
242
+ assert glom (ErrDict (val ), '**' ) == [val ]
243
+ assert glom (ErrDict (val ), '*' ) == []
243
244
# object access
244
245
class A :
245
246
def __init__ (self ):
@@ -248,10 +249,10 @@ def __init__(self):
248
249
val = A ()
249
250
if core .PY2 : # compensate for unpredictable attribute order
250
251
assert sorted (glom (val , '*' )) == sorted ([1 , {'c' : 2 }])
251
- assert sorted (glom (val , '**' )) == sorted ([1 , {'c' : 2 }, 2 ])
252
+ assert sorted (glom (val , '**' )) == sorted ([val , 1 , {'c' : 2 }, 2 ])
252
253
else :
253
254
assert glom (val , '*' ) == [1 , {'c' : 2 }]
254
- assert glom (val , '**' ) == [1 , {'c' : 2 }, 2 ]
255
+ assert glom (val , '**' ) == [val , 1 , {'c' : 2 }, 2 ]
255
256
core .PATH_STAR = False
256
257
257
258
0 commit comments