11import json
22import random
3- import unittest
43from string import ascii_letters
54
65import pytest
1413NAIP_EXAMPLE_URI = TestCases .get_path ("data-files/storage/item-naip.json" )
1514NAIP_COLLECTION_URI = TestCases .get_path ("data-files/storage/collection-naip.json" )
1615
16+
1717@pytest .fixture
1818def naip_item () -> Item :
1919 return Item .from_file (NAIP_EXAMPLE_URI )
2020
21+
2122@pytest .fixture
2223def naip_collection () -> Collection :
2324 return Collection .from_file (NAIP_COLLECTION_URI )
2425
2526
26-
2727def test_to_from_dict () -> None :
2828 with open (NAIP_EXAMPLE_URI ) as f :
2929 item_dict = json .load (f )
3030 assert_to_from_dict (Item , item_dict )
3131
3232
3333def test_add_to (sample_item : Item ) -> None :
34- assert StorageExtension .get_schema_uri () not in sample_item .stac_extensions
34+ assert StorageExtension .get_schema_uri () not in sample_item .stac_extensions
3535 # Check that the URI gets added to stac_extensions
3636 StorageExtension .add_to (sample_item )
3737 assert StorageExtension .get_schema_uri () in sample_item .stac_extensions
@@ -48,6 +48,7 @@ def test_add_to(sample_item: Item) -> None:
4848 ]
4949 assert len (eo_uris ) == 1
5050
51+
5152@pytest .mark .vcr ()
5253def test_validate_storage (naip_item : Item ) -> None :
5354 naip_item .validate ()
@@ -75,13 +76,15 @@ def test_extension_not_implemented(sample_item: Item) -> None:
7576 ownerless_asset = pystac .Asset .from_dict (asset .to_dict ())
7677 _ = StorageExtension .ext (ownerless_asset )
7778
79+
7880def test_item_ext_add_to (sample_item : Item ) -> None :
7981 assert StorageExtension .get_schema_uri () not in sample_item .stac_extensions
8082
8183 _ = StorageExtension .ext (sample_item , add_if_missing = True )
8284
8385 assert StorageExtension .get_schema_uri () in sample_item .stac_extensions
8486
87+
8588def test_asset_ext_add_to (sample_item : Item ) -> None :
8689 assert StorageExtension .get_schema_uri () not in sample_item .stac_extensions
8790 asset = sample_item .assets ["thumbnail" ]
@@ -90,20 +93,22 @@ def test_asset_ext_add_to(sample_item: Item) -> None:
9093
9194 assert StorageExtension .get_schema_uri () in sample_item .stac_extensions
9295
96+
9397def test_asset_ext_add_to_ownerless_asset (sample_item : Item ) -> None :
9498 asset_dict = sample_item .assets ["thumbnail" ].to_dict ()
9599 asset = pystac .Asset .from_dict (asset_dict )
96100
97101 with pytest .raises (pystac .STACError ):
98102 _ = StorageExtension .ext (asset , add_if_missing = True )
99103
104+
100105def test_should_raise_exception_when_passing_invalid_extension_object () -> None :
101106 with pytest .raises (
102- ExtensionTypeError ,
103- match = r"^StorageExtension does not apply to type 'object'$"
107+ ExtensionTypeError , match = r"^StorageExtension does not apply to type 'object'$"
104108 ):
105109 # calling it wrong purposely so ---------v
106- StorageExtension .ext (object ()) # type: ignore
110+ StorageExtension .ext (object ()) # type: ignore
111+
107112
108113def test_summaries_platform (naip_collection : Collection ) -> None :
109114 col_dict = naip_collection .to_dict ()
@@ -126,7 +131,7 @@ def test_summaries_region(naip_collection: Collection) -> None:
126131 storage_summaries = StorageExtension .summaries (naip_collection )
127132
128133 # Get
129- assert storage_summaries .region == col_dict ["summaries" ]["storage:region" ]
134+ assert storage_summaries .region == col_dict ["summaries" ]["storage:region" ]
130135 # Set
131136 new_region_summary = [random .choice (ascii_letters )]
132137 assert storage_summaries .region != new_region_summary
@@ -136,21 +141,26 @@ def test_summaries_region(naip_collection: Collection) -> None:
136141 col_dict = naip_collection .to_dict ()
137142 assert col_dict ["summaries" ]["storage:region" ] == new_region_summary
138143
144+
139145def test_summaries_requester_pays (naip_collection : Collection ) -> None :
140146 col_dict = naip_collection .to_dict ()
141147 storage_summaries = StorageExtension .summaries (naip_collection )
142148
143149 # Get
144- assert storage_summaries .requester_pays == col_dict ["summaries" ]["storage:requester_pays" ]
150+ assert (
151+ storage_summaries .requester_pays
152+ == col_dict ["summaries" ]["storage:requester_pays" ]
153+ )
145154
146155 # Set
147156 new_requester_pays_summary = [True ]
148- assert storage_summaries .requester_pays != new_requester_pays_summary
157+ assert storage_summaries .requester_pays != new_requester_pays_summary
149158 storage_summaries .requester_pays = new_requester_pays_summary
150159 assert storage_summaries .requester_pays == new_requester_pays_summary
151160
152161 col_dict = naip_collection .to_dict ()
153- assert col_dict ["summaries" ]["storage:requester_pays" ] == new_requester_pays_summary
162+ assert col_dict ["summaries" ]["storage:requester_pays" ] == new_requester_pays_summary
163+
154164
155165def test_summaries_tier (naip_collection : Collection ) -> None :
156166 col_dict = naip_collection .to_dict ()
@@ -168,6 +178,7 @@ def test_summaries_tier(naip_collection: Collection) -> None:
168178 col_dict = naip_collection .to_dict ()
169179 assert col_dict ["summaries" ]["storage:tier" ] == new_tier_summary
170180
181+
171182def test_summaries_adds_uri (naip_collection : Collection ) -> None :
172183 naip_collection .stac_extensions = []
173184 with pytest .raises (
@@ -210,6 +221,7 @@ def test_item_apply(naip_item: Item) -> None:
210221 assert storage_ext .requester_pays == new_requestor_pays
211222 assert storage_ext .tier == new_tier
212223
224+
213225@pytest .mark .vcr ()
214226def test_asset_platform (naip_item : Item ) -> None :
215227 # Grab a random asset with the platform property
@@ -224,7 +236,7 @@ def test_asset_platform(naip_item: Item) -> None:
224236 storage_ext = StorageExtension .ext (asset )
225237
226238 # Get
227- assert storage_ext .platform == asset .extra_fields .get ("storage:platform" )
239+ assert storage_ext .platform == asset .extra_fields .get ("storage:platform" )
228240
229241 # Set
230242 new_platform = random .choice (
@@ -235,6 +247,7 @@ def test_asset_platform(naip_item: Item) -> None:
235247
236248 naip_item .validate ()
237249
250+
238251@pytest .mark .vcr ()
239252def test_asset_region (naip_item : Item ) -> None :
240253 # Grab a random asset with the platform property
@@ -264,6 +277,7 @@ def test_asset_region(naip_item: Item) -> None:
264277 storage_ext .region = None
265278 assert "storage:region" not in asset .extra_fields
266279
280+
267281@pytest .mark .vcr ()
268282def test_asset_requester_pays (naip_item : Item ) -> None :
269283 # Grab a random asset with the platform property
@@ -278,7 +292,9 @@ def test_asset_requester_pays(naip_item: Item) -> None:
278292 storage_ext = StorageExtension .ext (asset )
279293
280294 # Get
281- assert storage_ext .requester_pays == asset .extra_fields .get ("storage:requester_pays" )
295+ assert storage_ext .requester_pays == asset .extra_fields .get (
296+ "storage:requester_pays"
297+ )
282298
283299 # Set
284300 new_requester_pays = True if not storage_ext .requester_pays else False
@@ -291,6 +307,7 @@ def test_asset_requester_pays(naip_item: Item) -> None:
291307 storage_ext .requester_pays = None
292308 assert "storage:requester_pays" not in asset .extra_fields
293309
310+
294311@pytest .mark .vcr ()
295312def test_asset_tier (naip_item : Item ) -> None :
296313 # Grab a random asset with the platform property
0 commit comments