11import json
2- import unittest
32
43import pytest
54
@@ -32,6 +31,7 @@ def test_band_create() -> None:
3231 assert band .solar_illumination == 42.0
3332 assert band .__repr__ () == "<Band name=B01>"
3433
34+
3535def test_band_description_unknown_band () -> None :
3636 desc = Band .band_description ("rainbow" )
3737 assert desc is None
@@ -51,6 +51,7 @@ def test_to_from_dict() -> None:
5151 item_dict = json .load (f )
5252 assert_to_from_dict (Item , item_dict )
5353
54+
5455def test_add_to () -> None :
5556 item = Item .from_file (PLAIN_ITEM )
5657 assert EOExtension .get_schema_uri () not in item .stac_extensions
@@ -69,13 +70,15 @@ def test_add_to() -> None:
6970 ]
7071 assert len (eo_uris ) == 1
7172
73+
7274@pytest .mark .vcr ()
7375def test_validate_eo () -> None :
7476 item = pystac .Item .from_file (LANDSAT_EXAMPLE_URI )
7577 item2 = pystac .Item .from_file (BANDS_IN_ITEM_URI )
7678 item .validate ()
7779 item2 .validate ()
7880
81+
7982@pytest .mark .vcr ()
8083def test_bands () -> None :
8184 item = pystac .Item .from_file (BANDS_IN_ITEM_URI )
@@ -95,17 +98,19 @@ def test_bands() -> None:
9598
9699 EOExtension .ext (item ).bands = new_bands
97100 assert (
98- "Common name: red, Range: 0.6 to 0.7" ==
99- item .properties ["eo:bands" ][0 ]["description" ]
101+ "Common name: red, Range: 0.6 to 0.7"
102+ == item .properties ["eo:bands" ][0 ]["description" ]
100103 )
101104 assert len (EOExtension .ext (item ).bands or []) == 3
102105 item .validate ()
103106
107+
104108def test_asset_bands_s2 () -> None :
105109 item = pystac .Item .from_file (S2_ITEM_URI )
106110 mtd_asset = item .get_assets ()["mtd" ]
107111 assert EOExtension .ext (mtd_asset ).bands is None
108112
113+
109114@pytest .mark .vcr ()
110115def test_asset_bands () -> None :
111116 item = pystac .Item .from_file (LANDSAT_EXAMPLE_URI )
@@ -162,6 +167,7 @@ def test_asset_bands() -> None:
162167
163168 assert len (item .assets ["test" ].extra_fields ["eo:bands" ]) == 3
164169
170+
165171@pytest .mark .vcr ()
166172def test_cloud_cover () -> None :
167173 item = pystac .Item .from_file (LANDSAT_EXAMPLE_URI )
@@ -188,6 +194,7 @@ def test_cloud_cover() -> None:
188194
189195 item .validate ()
190196
197+
191198def test_summaries () -> None :
192199 col = pystac .Collection .from_file (EO_COLLECTION_URI )
193200 eo_summaries = EOExtension .summaries (col )
@@ -219,6 +226,7 @@ def test_summaries() -> None:
219226 assert col_dict ["summaries" ]["eo:cloud_cover" ]["minimum" ] == 1.0
220227 assert col_dict ["summaries" ]["eo:snow_cover" ]["minimum" ] == 4.0
221228
229+
222230def test_summaries_adds_uri () -> None :
223231 col = pystac .Collection .from_file (EO_COLLECTION_URI )
224232 col .stac_extensions = []
@@ -234,6 +242,7 @@ def test_summaries_adds_uri() -> None:
234242 EOExtension .remove_from (col )
235243 assert EOExtension .get_schema_uri () not in col .stac_extensions
236244
245+
237246def test_read_pre_09_fields_into_common_metadata () -> None :
238247 eo_item = pystac .Item .from_file (
239248 TestCases .get_path (
@@ -244,6 +253,7 @@ def test_read_pre_09_fields_into_common_metadata() -> None:
244253 assert eo_item .common_metadata .platform == "landsat-8"
245254 assert eo_item .common_metadata .instruments == ["oli_tirs" ]
246255
256+
247257def test_reads_asset_bands_in_pre_1_0_version () -> None :
248258 item = pystac .Item .from_file (
249259 TestCases .get_path (
@@ -256,6 +266,7 @@ def test_reads_asset_bands_in_pre_1_0_version() -> None:
256266 assert len (bands or []) == 1
257267 assert get_opt (bands )[0 ].common_name == "cirrus"
258268
269+
259270def test_reads_gsd_in_pre_1_0_version () -> None :
260271 eo_item = pystac .Item .from_file (
261272 TestCases .get_path (
@@ -265,6 +276,7 @@ def test_reads_gsd_in_pre_1_0_version() -> None:
265276
266277 assert eo_item .common_metadata .gsd == 30.0
267278
279+
268280def test_item_apply () -> None :
269281 item = pystac .Item .from_file (LANDSAT_EXAMPLE_URI )
270282 eo_ext = EOExtension .ext (item )
@@ -279,12 +291,14 @@ def test_item_apply() -> None:
279291 assert test_band .to_dict () == eo_ext .bands [0 ].to_dict ()
280292 assert eo_ext .cloud_cover == 15
281293
294+
282295def test_extend_invalid_object () -> None :
283296 link = pystac .Link ("child" , "https://some-domain.com/some/path/to.json" )
284297
285298 with pytest .raises (pystac .ExtensionTypeError ):
286299 EOExtension .ext (link ) # type: ignore
287300
301+
288302def test_extension_not_implemented () -> None :
289303 # Should raise exception if Item does not include extension URI
290304 item = pystac .Item .from_file (PLAIN_ITEM )
@@ -302,6 +316,7 @@ def test_extension_not_implemented() -> None:
302316 ownerless_asset = pystac .Asset .from_dict (asset .to_dict ())
303317 _ = EOExtension .ext (ownerless_asset )
304318
319+
305320def test_item_ext_add_to () -> None :
306321 item = pystac .Item .from_file (PLAIN_ITEM )
307322 assert EOExtension .get_schema_uri () not in item .stac_extensions
@@ -310,6 +325,7 @@ def test_item_ext_add_to() -> None:
310325
311326 assert EOExtension .get_schema_uri () in item .stac_extensions
312327
328+
313329def test_asset_ext_add_to () -> None :
314330 item = pystac .Item .from_file (PLAIN_ITEM )
315331 assert EOExtension .get_schema_uri () not in item .stac_extensions
@@ -319,6 +335,7 @@ def test_asset_ext_add_to() -> None:
319335
320336 assert EOExtension .get_schema_uri () in item .stac_extensions
321337
338+
322339def test_asset_ext_add_to_ownerless_asset () -> None :
323340 item = pystac .Item .from_file (PLAIN_ITEM )
324341 asset_dict = item .assets ["thumbnail" ].to_dict ()
@@ -327,11 +344,13 @@ def test_asset_ext_add_to_ownerless_asset() -> None:
327344 with pytest .raises (pystac .STACError ):
328345 _ = EOExtension .ext (asset , add_if_missing = True )
329346
347+
330348def test_should_raise_exception_when_passing_invalid_extension_object () -> None :
331- with pytest .raises (ExtensionTypeError ,
332- match = r"^EOExtension does not apply to type 'object'$" ):
349+ with pytest .raises (
350+ ExtensionTypeError , match = r"^EOExtension does not apply to type 'object'$"
351+ ):
333352 # calling it wrong purposely -------v
334- EOExtension .ext (object ()) # type: ignore
353+ EOExtension .ext (object ()) # type: ignore
335354
336355
337356def test_migration () -> None :
0 commit comments