3434 meta_root ,
3535 getsize ,
3636)
37+ from zarr ._storage .store import v3_api_available
3738from zarr ._storage .v3 import (
3839 ConsolidatedMetadataStoreV3 ,
3940 DirectoryStoreV3 ,
4445)
4546from zarr .tests .util import have_fsspec
4647
48+ _VERSIONS = v3_api_available and (2 , 3 ) or (2 ,)
49+
4750
4851def _init_creation_kwargs (zarr_version ):
4952 kwargs = {'zarr_version' : zarr_version }
@@ -52,7 +55,7 @@ def _init_creation_kwargs(zarr_version):
5255 return kwargs
5356
5457
55- @pytest .mark .parametrize ('zarr_version' , [ 2 , 3 ] )
58+ @pytest .mark .parametrize ('zarr_version' , _VERSIONS )
5659def test_open_array (path_type , zarr_version ):
5760
5861 store = tempfile .mkdtemp ()
@@ -86,7 +89,7 @@ def test_open_array(path_type, zarr_version):
8689 open ('doesnotexist' , mode = 'r' )
8790
8891
89- @pytest .mark .parametrize ("zarr_version" , [ 2 , 3 ] )
92+ @pytest .mark .parametrize ("zarr_version" , _VERSIONS )
9093def test_open_group (path_type , zarr_version ):
9194
9295 store = tempfile .mkdtemp ()
@@ -116,7 +119,7 @@ def test_open_group(path_type, zarr_version):
116119 assert g .read_only
117120
118121
119- @pytest .mark .parametrize ("zarr_version" , [ 2 , 3 ] )
122+ @pytest .mark .parametrize ("zarr_version" , _VERSIONS )
120123def test_save_errors (zarr_version ):
121124 with pytest .raises (ValueError ):
122125 # no arrays provided
@@ -129,6 +132,7 @@ def test_save_errors(zarr_version):
129132 save ('data/group.zarr' , zarr_version = zarr_version )
130133
131134
135+ @pytest .mark .skipif (not v3_api_available , reason = "V3 is disabled" )
132136def test_zarr_v3_save_multiple_unnamed ():
133137 x = np .ones (8 )
134138 y = np .zeros (8 )
@@ -142,6 +146,7 @@ def test_zarr_v3_save_multiple_unnamed():
142146 assert meta_root + 'dataset/arr_1.array.json' in store
143147
144148
149+ @pytest .mark .skipif (not v3_api_available , reason = "V3 is disabled" )
145150def test_zarr_v3_save_errors ():
146151 x = np .ones (8 )
147152 with pytest .raises (ValueError ):
@@ -155,7 +160,7 @@ def test_zarr_v3_save_errors():
155160 save ('data/group.zr3' , x , zarr_version = 3 )
156161
157162
158- @pytest .mark .parametrize ("zarr_version" , [ 2 , 3 ] )
163+ @pytest .mark .parametrize ("zarr_version" , _VERSIONS )
159164def test_lazy_loader (zarr_version ):
160165 foo = np .arange (100 )
161166 bar = np .arange (100 , 0 , - 1 )
@@ -173,7 +178,7 @@ def test_lazy_loader(zarr_version):
173178 assert 'LazyLoader: ' in repr (loader )
174179
175180
176- @pytest .mark .parametrize ("zarr_version" , [ 2 , 3 ] )
181+ @pytest .mark .parametrize ("zarr_version" , _VERSIONS )
177182def test_load_array (zarr_version ):
178183 foo = np .arange (100 )
179184 bar = np .arange (100 , 0 , - 1 )
@@ -192,7 +197,7 @@ def test_load_array(zarr_version):
192197 assert_array_equal (bar , array )
193198
194199
195- @pytest .mark .parametrize ("zarr_version" , [ 2 , 3 ] )
200+ @pytest .mark .parametrize ("zarr_version" , _VERSIONS )
196201def test_tree (zarr_version ):
197202 kwargs = _init_creation_kwargs (zarr_version )
198203 g1 = zarr .group (** kwargs )
@@ -205,7 +210,7 @@ def test_tree(zarr_version):
205210 assert str (zarr .tree (g1 )) == str (g1 .tree ())
206211
207212
208- @pytest .mark .parametrize ('zarr_version' , [ 2 , 3 ] )
213+ @pytest .mark .parametrize ('zarr_version' , _VERSIONS )
209214@pytest .mark .parametrize ('stores_from_path' , [False , True ])
210215@pytest .mark .parametrize (
211216 'with_chunk_store,listable' ,
@@ -531,6 +536,7 @@ def test_if_exists(self):
531536 copy_store (source , dest , if_exists = 'foobar' )
532537
533538
539+ @pytest .mark .skipif (not v3_api_available , reason = "V3 is disabled" )
534540class TestCopyStoreV3 (TestCopyStore ):
535541
536542 _version = 3
@@ -666,6 +672,7 @@ def test_copy_all():
666672 assert destination_group .subgroup .attrs ["info" ] == "sub attrs"
667673
668674
675+ @pytest .mark .skipif (not v3_api_available , reason = "V3 is disabled" )
669676def test_copy_all_v3 ():
670677 """
671678 https://github.com/zarr-developers/zarr-python/issues/269
@@ -931,6 +938,7 @@ def test_logging(self, source, dest, tmpdir):
931938 copy (source ['foo' ], dest , dry_run = True , log = True )
932939
933940
941+ @pytest .mark .skipif (not v3_api_available , reason = "V3 is disabled" )
934942class TestCopyV3 (TestCopy ):
935943
936944 @pytest .fixture (params = ['zarr' , 'hdf5' ])
0 commit comments