File tree Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -87,7 +87,10 @@ async def save_metadata(
87
87
try :
88
88
await asyncio .gather (* ensure_array_awaitables )
89
89
except ContainsArrayError as e :
90
- set_awaitables = [] # clear awaitables to avoid printed RuntimeWarning: coroutine was never awaited
90
+ # clear awaitables to avoid RuntimeWarning: coroutine was never awaited
91
+ for awaitable in set_awaitables :
92
+ awaitable .close ()
93
+
91
94
raise ValueError (
92
95
f"A parent of { store_path } is an array - only groups may have child nodes."
93
96
) from e
Original file line number Diff line number Diff line change @@ -761,6 +761,24 @@ def test_group_create_array(
761
761
assert np .array_equal (array [:], data )
762
762
763
763
764
+ @pytest .mark .parametrize ("method" , ["create_array" , "create_group" ])
765
+ def test_create_with_parent_array (store : Store , zarr_format : ZarrFormat , method : str ):
766
+ """Test that groups/arrays cannot be created under a parent array."""
767
+
768
+ # create a group with a child array
769
+ group = Group .from_store (store , zarr_format = zarr_format )
770
+ group .create_array (name = "arr_1" , shape = (10 , 10 ), dtype = "uint8" )
771
+
772
+ error_msg = r"A parent of .* is an array - only groups may have child nodes."
773
+ if method == "create_array" :
774
+ with pytest .raises (ValueError , match = error_msg ):
775
+ group .create_array ("arr_1/group_1/group_2/arr_2" , shape = (10 , 10 ), dtype = "uint8" )
776
+
777
+ else :
778
+ with pytest .raises (ValueError , match = error_msg ):
779
+ group .create_group ("arr_1/group_1/group_2/group_3" )
780
+
781
+
764
782
def test_group_array_creation (
765
783
store : Store ,
766
784
zarr_format : ZarrFormat ,
You can’t perform that action at this time.
0 commit comments