@@ -78,6 +78,11 @@ def example_uri() -> str:
7878 return TestCases .get_path ("data-files/projection/example-landsat8.json" )
7979
8080
81+ @pytest .fixture
82+ def proj_item (example_uri : str ) -> Item :
83+ return pystac .Item .from_file (example_uri )
84+
85+
8186@pytest .fixture
8287def example_summaries_uri () -> str :
8388 return TestCases .get_path ("data-files/projection/collection-with-summaries.json" )
@@ -107,25 +112,20 @@ def test_apply() -> None:
107112
108113
109114@pytest .mark .vcr ()
110- def test_partial_apply (example_uri : str ) -> None :
111- proj_item = pystac .Item .from_file (example_uri )
112-
115+ def test_partial_apply (proj_item : Item ) -> None :
113116 ProjectionExtension .ext (proj_item ).apply (epsg = 1111 )
114117
115118 assert ProjectionExtension .ext (proj_item ).epsg == 1111
116119 proj_item .validate ()
117120
118121
119122@pytest .mark .vcr ()
120- def test_validate_proj (example_uri : str ) -> None :
121- item = pystac .Item .from_file (example_uri )
122- item .validate ()
123+ def test_validate_proj (proj_item : Item ) -> None :
124+ proj_item .validate ()
123125
124126
125127@pytest .mark .vcr ()
126- def test_epsg (example_uri : str ) -> None :
127- proj_item = pystac .Item .from_file (example_uri )
128-
128+ def test_epsg (proj_item : Item ) -> None :
129129 # Get
130130 assert "proj:epsg" not in proj_item .properties
131131 assert "proj:code" in proj_item .properties
@@ -175,9 +175,7 @@ def test_optional_epsg() -> None:
175175
176176
177177@pytest .mark .vcr ()
178- def test_wkt2 (example_uri : str ) -> None :
179- proj_item = pystac .Item .from_file (example_uri )
180-
178+ def test_wkt2 (proj_item : Item ) -> None :
181179 # Get
182180 assert "proj:wkt2" in proj_item .properties
183181 proj_wkt2 = ProjectionExtension .ext (proj_item ).wkt2
@@ -210,9 +208,7 @@ def test_wkt2(example_uri: str) -> None:
210208
211209
212210@pytest .mark .vcr ()
213- def test_projjson (example_uri : str ) -> None :
214- proj_item = pystac .Item .from_file (example_uri )
215-
211+ def test_projjson (proj_item : Item ) -> None :
216212 # Get
217213 assert "proj:projjson" in proj_item .properties
218214 proj_projjson = ProjectionExtension .ext (proj_item ).projjson
@@ -254,18 +250,17 @@ def test_projjson(example_uri: str) -> None:
254250 proj_item .validate ()
255251
256252
257- def test_crs_string (example_uri : str ) -> None :
258- item = pystac .Item .from_file (example_uri )
259- ProjectionExtension .remove_from (item )
260- for key in list (item .properties .keys ()):
253+ def test_crs_string (proj_item : Item ) -> None :
254+ ProjectionExtension .remove_from (proj_item )
255+ for key in list (proj_item .properties .keys ()):
261256 if key .startswith ("proj:" ):
262- item .properties .pop (key )
263- assert item .properties .get ("proj:code" ) is None
264- assert item .properties .get ("proj:epsg" ) is None
265- assert item .properties .get ("proj:wkt2" ) is None
266- assert item .properties .get ("proj:projjson" ) is None
257+ proj_item .properties .pop (key )
258+ assert proj_item .properties .get ("proj:code" ) is None
259+ assert proj_item .properties .get ("proj:epsg" ) is None
260+ assert proj_item .properties .get ("proj:wkt2" ) is None
261+ assert proj_item .properties .get ("proj:projjson" ) is None
267262
268- projection = ProjectionExtension .ext (item , add_if_missing = True )
263+ projection = ProjectionExtension .ext (proj_item , add_if_missing = True )
269264 assert projection .crs_string is None
270265
271266 projection .projjson = PROJJSON
@@ -282,9 +277,7 @@ def test_crs_string(example_uri: str) -> None:
282277
283278
284279@pytest .mark .vcr ()
285- def test_geometry (example_uri : str ) -> None :
286- proj_item = pystac .Item .from_file (example_uri )
287-
280+ def test_geometry (proj_item : Item ) -> None :
288281 # Get
289282 assert "proj:geometry" in proj_item .properties
290283 proj_geometry = ProjectionExtension .ext (proj_item ).geometry
@@ -324,9 +317,7 @@ def test_geometry(example_uri: str) -> None:
324317
325318
326319@pytest .mark .vcr ()
327- def test_bbox (example_uri : str ) -> None :
328- proj_item = pystac .Item .from_file (example_uri )
329-
320+ def test_bbox (proj_item : Item ) -> None :
330321 # Get
331322 assert "proj:bbox" in proj_item .properties
332323 proj_bbox = ProjectionExtension .ext (proj_item ).bbox
@@ -359,9 +350,7 @@ def test_bbox(example_uri: str) -> None:
359350
360351
361352@pytest .mark .vcr ()
362- def test_centroid (example_uri : str ) -> None :
363- proj_item = pystac .Item .from_file (example_uri )
364-
353+ def test_centroid (proj_item : Item ) -> None :
365354 # Get
366355 assert "proj:centroid" in proj_item .properties
367356 proj_centroid = ProjectionExtension .ext (proj_item ).centroid
@@ -400,9 +389,7 @@ def test_centroid(example_uri: str) -> None:
400389
401390
402391@pytest .mark .vcr ()
403- def test_shape (example_uri : str ) -> None :
404- proj_item = pystac .Item .from_file (example_uri )
405-
392+ def test_shape (proj_item : Item ) -> None :
406393 # Get
407394 assert "proj:shape" in proj_item .properties
408395 proj_shape = ProjectionExtension .ext (proj_item ).shape
@@ -436,9 +423,7 @@ def test_shape(example_uri: str) -> None:
436423
437424
438425@pytest .mark .vcr ()
439- def test_transform (example_uri : str ) -> None :
440- proj_item = pystac .Item .from_file (example_uri )
441-
426+ def test_transform (proj_item : Item ) -> None :
442427 # Get
443428 assert "proj:transform" in proj_item .properties
444429 proj_transform = ProjectionExtension .ext (proj_item ).transform
@@ -481,16 +466,15 @@ def test_transform(example_uri: str) -> None:
481466 proj_item .validate ()
482467
483468
484- def test_extension_not_implemented (example_uri : str ) -> None :
469+ def test_extension_not_implemented (proj_item : Item ) -> None :
485470 # Should raise exception if Item does not include extension URI
486- item = pystac .Item .from_file (example_uri )
487- item .stac_extensions .remove (ProjectionExtension .get_schema_uri ())
471+ proj_item .stac_extensions .remove (ProjectionExtension .get_schema_uri ())
488472
489473 with pytest .raises (pystac .ExtensionNotImplemented ):
490- _ = ProjectionExtension .ext (item )
474+ _ = ProjectionExtension .ext (proj_item )
491475
492476 # Should raise exception if owning Item does not include extension URI
493- asset = item .assets ["B8" ]
477+ asset = proj_item .assets ["B8" ]
494478
495479 with pytest .raises (pystac .ExtensionNotImplemented ):
496480 _ = ProjectionExtension .ext (asset )
@@ -500,25 +484,23 @@ def test_extension_not_implemented(example_uri: str) -> None:
500484 _ = ProjectionExtension .ext (ownerless_asset )
501485
502486
503- def test_item_ext_add_to (example_uri : str ) -> None :
504- item = pystac .Item .from_file (example_uri )
505- item .stac_extensions .remove (ProjectionExtension .get_schema_uri ())
506- assert ProjectionExtension .get_schema_uri () not in item .stac_extensions
487+ def test_item_ext_add_to (proj_item : Item ) -> None :
488+ proj_item .stac_extensions .remove (ProjectionExtension .get_schema_uri ())
489+ assert ProjectionExtension .get_schema_uri () not in proj_item .stac_extensions
507490
508- _ = ProjectionExtension .ext (item , add_if_missing = True )
491+ _ = ProjectionExtension .ext (proj_item , add_if_missing = True )
509492
510- assert ProjectionExtension .get_schema_uri () in item .stac_extensions
493+ assert ProjectionExtension .get_schema_uri () in proj_item .stac_extensions
511494
512495
513- def test_asset_ext_add_to (example_uri : str ) -> None :
514- item = pystac .Item .from_file (example_uri )
515- item .stac_extensions .remove (ProjectionExtension .get_schema_uri ())
516- assert ProjectionExtension .get_schema_uri () not in item .stac_extensions
517- asset = item .assets ["B8" ]
496+ def test_asset_ext_add_to (proj_item : Item ) -> None :
497+ proj_item .stac_extensions .remove (ProjectionExtension .get_schema_uri ())
498+ assert ProjectionExtension .get_schema_uri () not in proj_item .stac_extensions
499+ asset = proj_item .assets ["B8" ]
518500
519501 _ = ProjectionExtension .ext (asset , add_if_missing = True )
520502
521- assert ProjectionExtension .get_schema_uri () in item .stac_extensions
503+ assert ProjectionExtension .get_schema_uri () in proj_item .stac_extensions
522504
523505
524506def test_should_raise_exception_when_passing_invalid_extension_object () -> None :
0 commit comments