@@ -62,33 +62,36 @@ def test_open_normalized_path(
6262
6363
6464@pytest .mark .parametrize ("store" , ["local" , "memory" , "remote" , "zip" ], indirect = True ) 
65- async  def  test_open_array (store : Store ) ->  None :
65+ async  def  test_open_array (store : Store ,  zarr_format :  ZarrFormat ) ->  None :
6666    # open array, create if doesn't exist 
67-     z  =  open (store = store , shape = 100 )
67+     z  =  open (store = store , shape = 100 ,  zarr_format = zarr_format )
6868    assert  isinstance (z , Array )
6969    assert  z .shape  ==  (100 ,)
7070
7171    # open array, overwrite 
7272    # store._store_dict = {} 
7373    store  =  MemoryStore (mode = "w" )
74-     z  =  open (store = store , shape = 200 )
74+     z  =  open (store = store , shape = 200 ,  zarr_format = zarr_format )
7575    assert  isinstance (z , Array )
7676    assert  z .shape  ==  (200 ,)
7777
7878    # open array, read-only 
79-     store_cls  =  type (store )
80-     ro_store  =  await  store_cls .open (store_dict = store ._store_dict , mode = "r" )
81-     z  =  open (store = ro_store )
79+     ro_store  =  store .with_mode ("r" )
80+     z  =  open (store = ro_store , zarr_format = zarr_format )
8281    assert  isinstance (z , Array )
8382    assert  z .shape  ==  (200 ,)
8483    assert  z .read_only 
8584
8685    # path not found 
8786    with  pytest .raises (FileNotFoundError ):
88-         open (store = "doesnotexist" , mode = "r" )
87+         open (store = store ,  path = "doesnotexist" , mode = "r" ,  zarr_format = zarr_format )
8988
9089
91- @pytest .mark .parametrize ("store" , ["local" , "memory" , "remote" , "zip" ], indirect = True ) 
90+ @pytest .mark .parametrize ( 
91+     "store" , 
92+     ["local" , "memory" , "remote" , pytest .param ("zip" , marks = pytest .mark .xfail )], 
93+     indirect = True , 
94+ ) 
9295async  def  test_open_group (store : Store ) ->  None :
9396    # open group, create if doesn't exist 
9497    g  =  open_group (store = store )
@@ -128,7 +131,11 @@ async def test_open_array_or_group(zarr_format: ZarrFormat, store: Store) -> Non
128131    assert  arr_r .shape  ==  arr_w .shape 
129132
130133
131- @pytest .mark .parametrize ("store" , ["local" , "memory" , "remote" , "zip" ], indirect = True ) 
134+ @pytest .mark .parametrize ( 
135+     "store" , 
136+     ["local" , "memory" , "remote" , pytest .param ("zip" , marks = pytest .mark .xfail )], 
137+     indirect = True , 
138+ ) 
132139@pytest .mark .parametrize ("zarr_format" , [None , 2 , 3 ]) 
133140async  def  test_open_group_unspecified_version (store : Store , zarr_format : ZarrFormat ) ->  None :
134141    """Regression test for https://github.com/zarr-developers/zarr-python/issues/2175""" 
@@ -159,7 +166,11 @@ def test_save_errors() -> None:
159166        save ("data/group.zarr" )
160167
161168
162- @pytest .mark .parametrize ("store" , ["local" , "memory" , "remote" , "zip" ], indirect = True ) 
169+ @pytest .mark .parametrize ( 
170+     "store" , 
171+     ["local" , "memory" , "remote" , pytest .param ("zip" , marks = pytest .mark .xfail )], 
172+     indirect = True , 
173+ ) 
163174def  test_open_with_mode_r (store : Store ) ->  None :
164175    # 'r' means read only (must exist) 
165176    with  pytest .raises (FileNotFoundError ):
@@ -174,7 +185,11 @@ def test_open_with_mode_r(store: Store) -> None:
174185        z2 [:] =  3 
175186
176187
177- @pytest .mark .parametrize ("store" , ["local" , "memory" , "remote" , "zip" ], indirect = True ) 
188+ @pytest .mark .parametrize ( 
189+     "store" , 
190+     ["local" , "memory" , "remote" , pytest .param ("zip" , marks = pytest .mark .xfail )], 
191+     indirect = True , 
192+ ) 
178193def  test_open_with_mode_r_plus (store : Store ) ->  None :
179194    # 'r+' means read/write (must exist) 
180195    with  pytest .raises (FileNotFoundError ):
@@ -186,7 +201,11 @@ def test_open_with_mode_r_plus(store: Store) -> None:
186201    z2 [:] =  3 
187202
188203
189- @pytest .mark .parametrize ("store" , ["local" , "memory" , "remote" , "zip" ], indirect = True ) 
204+ @pytest .mark .parametrize ( 
205+     "store" , 
206+     ["local" , "memory" , "remote" , pytest .param ("zip" , marks = pytest .mark .xfail )], 
207+     indirect = True , 
208+ ) 
190209async  def  test_open_with_mode_a (store : Store ) ->  None :
191210    # Open without shape argument should default to group 
192211    g  =  zarr .open (store = store , mode = "a" )
@@ -203,7 +222,11 @@ async def test_open_with_mode_a(store: Store) -> None:
203222    z2 [:] =  3 
204223
205224
206- @pytest .mark .parametrize ("store" , ["local" , "memory" , "remote" , "zip" ], indirect = True ) 
225+ @pytest .mark .parametrize ( 
226+     "store" , 
227+     ["local" , "memory" , "remote" , pytest .param ("zip" , marks = pytest .mark .xfail )], 
228+     indirect = True , 
229+ ) 
207230def  test_open_with_mode_w (store : Store ) ->  None :
208231    # 'w' means create (overwrite if exists); 
209232    arr  =  zarr .open (store = store , mode = "w" , shape = (3 , 3 ))
@@ -216,7 +239,11 @@ def test_open_with_mode_w(store: Store) -> None:
216239    z2 [:] =  3 
217240
218241
219- @pytest .mark .parametrize ("store" , ["local" , "memory" , "remote" , "zip" ], indirect = True ) 
242+ @pytest .mark .parametrize ( 
243+     "store" , 
244+     ["local" , "memory" , "remote" , pytest .param ("zip" , marks = pytest .mark .xfail )], 
245+     indirect = True , 
246+ ) 
220247def  test_open_with_mode_w_minus (store : Store ) ->  None :
221248    # 'w-' means create  (fail if exists) 
222249    arr  =  zarr .open (store = store , mode = "w-" , shape = (3 , 3 ))
@@ -1012,10 +1039,10 @@ async def test_metadata_validation_error() -> None:
10121039        MetadataValidationError ,
10131040        match = "Invalid value for 'zarr_format'. Expected '2, 3, or None'. Got '3.0'." ,
10141041    ):
1015-         await  zarr .api .asynchronous .open_group (zarr_format = "3.0" )   # type: ignore[arg-type] 
1042+         await  zarr .api .asynchronous .open_group (zarr_format = "3.0" )
10161043
10171044    with  pytest .raises (
10181045        MetadataValidationError ,
10191046        match = "Invalid value for 'zarr_format'. Expected '2, 3, or None'. Got '3.0'." ,
10201047    ):
1021-         await  zarr .api .asynchronous .open_array (shape = (1 ,), zarr_format = "3.0" )   # type: ignore[arg-type] 
1048+         await  zarr .api .asynchronous .open_array (shape = (1 ,), zarr_format = "3.0" )
0 commit comments