@@ -191,9 +191,17 @@ async def test_list_dir(self, store: S) -> None:
191191 assert out == []
192192 assert [k async for k in store .list_dir ("foo" )] == []
193193 await store .set ("foo/zarr.json" , Buffer .from_bytes (b"bar" ))
194- await store .set ("foo/c/1" , Buffer .from_bytes (b"\x01 " ))
194+ await store .set ("group-0/zarr.json" , Buffer .from_bytes (b"\x01 " )) # group
195+ await store .set ("group-0/group-1/zarr.json" , Buffer .from_bytes (b"\x01 " )) # group
196+ await store .set ("group-0/group-1/a1/zarr.json" , Buffer .from_bytes (b"\x01 " ))
197+ await store .set ("group-0/group-1/a2/zarr.json" , Buffer .from_bytes (b"\x01 " ))
198+ await store .set ("group-0/group-1/a3/zarr.json" , Buffer .from_bytes (b"\x01 " ))
195199
196- keys_expected = ["zarr.json" , "c" ]
200+ keys_expected = ["foo" , "group-0" ]
201+ keys_observed = [k async for k in store .list_dir ("" )]
202+ assert set (keys_observed ) == set (keys_expected )
203+
204+ keys_expected = ["zarr.json" ]
197205 keys_observed = [k async for k in store .list_dir ("foo" )]
198206
199207 assert len (keys_observed ) == len (keys_expected ), keys_observed
@@ -202,3 +210,23 @@ async def test_list_dir(self, store: S) -> None:
202210 keys_observed = [k async for k in store .list_dir ("foo/" )]
203211 assert len (keys_expected ) == len (keys_observed ), keys_observed
204212 assert set (keys_observed ) == set (keys_expected ), keys_observed
213+
214+ keys_observed = [k async for k in store .list_dir ("group-0" )]
215+ keys_expected = ["zarr.json" , "group-1" ]
216+
217+ assert len (keys_observed ) == len (keys_expected ), keys_observed
218+ assert set (keys_observed ) == set (keys_expected ), keys_observed
219+
220+ keys_observed = [k async for k in store .list_dir ("group-0/" )]
221+ assert len (keys_expected ) == len (keys_observed ), keys_observed
222+ assert set (keys_observed ) == set (keys_expected ), keys_observed
223+
224+ keys_observed = [k async for k in store .list_dir ("group-0/group-1" )]
225+ keys_expected = ["zarr.json" , "a1" , "a2" , "a3" ]
226+
227+ assert len (keys_observed ) == len (keys_expected ), keys_observed
228+ assert set (keys_observed ) == set (keys_expected ), keys_observed
229+
230+ keys_observed = [k async for k in store .list_dir ("group-0/group-1" )]
231+ assert len (keys_expected ) == len (keys_observed ), keys_observed
232+ assert set (keys_observed ) == set (keys_expected ), keys_observed
0 commit comments