Skip to content

Commit 64b6030

Browse files
committed
993 refactor & cleanup
1 parent 67702a8 commit 64b6030

File tree

3 files changed

+72
-91
lines changed

3 files changed

+72
-91
lines changed

tests/extensions/test_grid.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@
1717

1818
code = "MGRS-4CFJ"
1919

20-
SENTINEL_EXAMPLE_URI = TestCases.get_path("data-files/grid/example-sentinel2.json")
20+
21+
@pytest.fixture
22+
def sentinel2_example_item() -> pystac.Item:
23+
return pystac.Item.from_file(
24+
TestCases.get_path("data-files/grid/example-sentinel2.json")
25+
)
2126

2227

2328
@pytest.fixture
@@ -111,9 +116,9 @@ def test_clear_code(item: pystac.Item) -> None:
111116
GridExtension.ext(item).code = "EPSG:4326"
112117

113118

114-
def test_extension_not_implemented() -> None:
119+
def test_extension_not_implemented(sentinel2_example_item: pystac.Item) -> None:
115120
# Should raise exception if Item does not include extension URI
116-
item = pystac.Item.from_file(SENTINEL_EXAMPLE_URI)
121+
item = sentinel2_example_item
117122
item.stac_extensions.remove(GridExtension.get_schema_uri())
118123

119124
with pytest.raises(pystac.ExtensionNotImplemented):
@@ -126,8 +131,8 @@ def test_extension_not_implemented() -> None:
126131
_ = GridExtension.ext(item)
127132

128133

129-
def test_item_ext_add_to() -> None:
130-
item = pystac.Item.from_file(SENTINEL_EXAMPLE_URI)
134+
def test_item_ext_add_to(sentinel2_example_item: pystac.Item) -> None:
135+
item = sentinel2_example_item
131136
item.stac_extensions.remove(GridExtension.get_schema_uri())
132137
assert GridExtension.get_schema_uri() not in item.stac_extensions
133138

tests/extensions/test_projection.py

Lines changed: 39 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -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
8287
def 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

524506
def test_should_raise_exception_when_passing_invalid_extension_object() -> None:

tests/extensions/test_table.py

Lines changed: 23 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,24 @@
99

1010

1111
@pytest.fixture
12-
def example_uri() -> str:
13-
return TestCases.get_path("data-files/table/item.json")
12+
def table_item() -> Item:
13+
return pystac.Item.from_file(TestCases.get_path("data-files/table/item.json"))
1414

1515

1616
@pytest.mark.vcr()
17-
def test_validate(example_uri: str) -> None:
18-
item = pystac.Item.from_file(example_uri)
19-
item.validate()
17+
def test_validate(table_item: Item) -> None:
18+
table_item.validate()
2019

2120

22-
def test_extension_not_implemented(example_uri: str) -> None:
21+
def test_extension_not_implemented(table_item: Item) -> None:
2322
# Should raise exception if item does not include extension URI
24-
item = pystac.Item.from_file(example_uri)
25-
item.stac_extensions.remove(TableExtension.get_schema_uri())
23+
table_item.stac_extensions.remove(TableExtension.get_schema_uri())
2624

2725
with pytest.raises(pystac.ExtensionNotImplemented):
28-
_ = TableExtension.ext(item)
26+
_ = TableExtension.ext(table_item)
2927

3028
# Should raise exception if owning item does not include extension URI
31-
asset = item.assets["data"]
29+
asset = table_item.assets["data"]
3230

3331
with pytest.raises(pystac.ExtensionNotImplemented):
3432
_ = TableExtension.ext(asset)
@@ -38,24 +36,22 @@ def test_extension_not_implemented(example_uri: str) -> None:
3836
_ = TableExtension.ext(ownerless_asset)
3937

4038

41-
def test_item_ext_add_to(example_uri: str) -> None:
42-
item = pystac.Item.from_file(example_uri)
43-
item.stac_extensions.remove(TableExtension.get_schema_uri())
39+
def test_item_ext_add_to(table_item: Item) -> None:
40+
table_item.stac_extensions.remove(TableExtension.get_schema_uri())
4441

45-
_ = TableExtension.ext(item, add_if_missing=True)
42+
_ = TableExtension.ext(table_item, add_if_missing=True)
4643

47-
assert TableExtension.get_schema_uri() in item.stac_extensions
44+
assert TableExtension.get_schema_uri() in table_item.stac_extensions
4845

4946

50-
def test_asset_ext_add_to(example_uri: str) -> None:
51-
item = pystac.Item.from_file(example_uri)
52-
item.stac_extensions.remove(TableExtension.get_schema_uri())
47+
def test_asset_ext_add_to(table_item: Item) -> None:
48+
table_item.stac_extensions.remove(TableExtension.get_schema_uri())
5349

54-
assert TableExtension.get_schema_uri() not in item.stac_extensions
55-
asset = item.assets["data"]
50+
assert TableExtension.get_schema_uri() not in table_item.stac_extensions
51+
asset = table_item.assets["data"]
5652

5753
_ = TableExtension.ext(asset, add_if_missing=True)
58-
assert TableExtension.get_schema_uri() in item.stac_extensions
54+
assert TableExtension.get_schema_uri() in table_item.stac_extensions
5955

6056

6157
def test_should_raise_when_passing_invalid_extension_object() -> None:
@@ -68,17 +64,16 @@ def test_should_raise_when_passing_invalid_extension_object() -> None:
6864

6965
def test_item_with_table_extension_is_serilalizable_and_roundtrips(
7066
tmp_path: Path,
67+
table_item: Item,
7168
) -> None:
72-
example_uri = TestCases.get_path("data-files/table/item.json")
73-
item = pystac.Item.from_file(example_uri)
7469
# add column metadata
75-
tab_ext = TableExtension.ext(item, add_if_missing=True)
70+
tab_ext = TableExtension.ext(table_item, add_if_missing=True)
7671
columns = [
7772
Column({"name": "col_1", "type": "str"}),
7873
Column({"name": "col_2", "type": "byte_array"}),
7974
]
8075
tab_ext.columns = columns
81-
item.save_object(dest_href=str(tmp_path / "item.json"))
76+
table_item.save_object(dest_href=str(tmp_path / "item.json"))
8277
assert all(isinstance(c, Column) for c in tab_ext.columns)
8378
assert all(
8479
before.properties == after.properties
@@ -94,10 +89,9 @@ def test_item_with_table_extension_is_serilalizable_and_roundtrips(
9489
"https://stac-extensions.github.io/table/v1.1.0/schema.json",
9590
),
9691
)
97-
def test_migrate(schema_uri: str, item: Item) -> None:
98-
item_dict = item.to_dict(include_self_link=False, transform_hrefs=False)
92+
def test_migrate(schema_uri: str, table_item: Item) -> None:
93+
item_dict = table_item.to_dict(include_self_link=False, transform_hrefs=False)
9994
item_dict["stac_extensions"] = [schema_uri]
100-
item = Item.from_dict(item_dict, migrate=True)
101-
assert item.stac_extensions == [
95+
assert Item.from_dict(item_dict, migrate=True).stac_extensions == [
10296
"https://stac-extensions.github.io/table/v1.2.0/schema.json"
10397
]

0 commit comments

Comments
 (0)