diff --git a/CHANGELOG.md b/CHANGELOG.md index ecdb3f3..e7f7442 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ The format is (loosely) based on [Keep a Changelog](http://keepachangelog.com/) ## Added - Ability to lint dictionaries https://github.com/stac-utils/stac-check/pull/94 ## Fixed -- Fixed the check_catalog_id_file_name() method to only work on static catalogs https://github.com/stac-utils/stac-check/pull/94 +- Fixed the check_catalog_file_name() method to only work on static catalogs https://github.com/stac-utils/stac-check/pull/94 ## [v1.3.1] - 2022-10-05 ## Changed diff --git a/stac_check/lint.py b/stac_check/lint.py index 7927030..43917fd 100644 --- a/stac_check/lint.py +++ b/stac_check/lint.py @@ -196,7 +196,7 @@ def check_item_id_file_name(self): else: return True - def check_catalog_id_file_name(self): + def check_catalog_file_name(self): if isinstance(self.item, str) and ".json" in self.item: if self.asset_type == "CATALOG" and 'catalog.json' not in self.item: return False @@ -230,7 +230,7 @@ def create_best_practices_dict(self): best_practices_dict["check_item_id"] = [msg_1] # best practices - collection and catalog file names should be collection.json and catalog.json - if self.check_catalog_id_file_name() == False and config["catalog_id_file_name"] == True: + if self.check_catalog_file_name() == False and config["catalog_id_file_name"] == True: msg_1 = f"Object should be called '{self.asset_type.lower()}.json' not '{self.file_name}.json'" best_practices_dict["check_catalog_id"] = [msg_1] diff --git a/test_dict.py b/test_dict.py new file mode 100644 index 0000000..900a855 --- /dev/null +++ b/test_dict.py @@ -0,0 +1,141 @@ +# from stac_check.lint import Linter + +# file = { +# "stac_version": "1.0.0", +# "stac_extensions": [], +# "type": "Feature", +# "id": "20201211_223832_CS2", +# "bbox": [ +# 172.91173669923782, +# 1.3438851951615003, +# 172.95469614953714, +# 1.3690476620161975 +# ], +# "geometry": { +# "type": "Polygon", +# "coordinates": [ +# [ +# [ +# 172.91173669923782, +# 1.3438851951615003 +# ], +# [ +# 172.95469614953714, +# 1.3438851951615003 +# ], +# [ +# 172.95469614953714, +# 1.3690476620161975 +# ], +# [ +# 172.91173669923782, +# 1.3690476620161975 +# ], +# [ +# 172.91173669923782, +# 1.3438851951615003 +# ] +# ] +# ] +# }, +# "properties": { +# "title": "Core Item", +# "description": "A sample STAC Item that includes examples of all common metadata", +# "datetime": None, +# "start_datetime": "2020-12-11T22:38:32.125Z", +# "end_datetime": "2020-12-11T22:38:32.327Z", +# "created": "2020-12-12T01:48:13.725Z", +# "updated": "2020-12-12T01:48:13.725Z", +# "platform": "cool_sat1", +# "instruments": [ +# "cool_sensor_v1" +# ], +# "constellation": "ion", +# "mission": "collection 5624", +# "gsd": 0.512 +# }, +# "collection": "simple-collection", +# "links": [ +# { +# "rel": "collection", +# "href": "./collection.json", +# "type": "application/json", +# "title": "Simple Example Collection" +# }, +# { +# "rel": "root", +# "href": "./collection.json", +# "type": "application/json", +# "title": "Simple Example Collection" +# }, +# { +# "rel": "parent", +# "href": "./collection.json", +# "type": "application/json", +# "title": "Simple Example Collection" +# }, +# { +# "rel": "alternate", +# "type": "text/html", +# "href": "http://remotedata.io/catalog/20201211_223832_CS2/index.html", +# "title": "HTML version of this STAC Item" +# } +# ], +# "assets": { +# "analytic": { +# "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2_analytic.tif", +# "type": "image/tiff; application=geotiff; profile=cloud-optimized", +# "title": "4-Band Analytic", +# "roles": [ +# "data" +# ] +# }, +# "thumbnail": { +# "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2.jpg", +# "title": "Thumbnail", +# "type": "image/png", +# "roles": [ +# "thumbnail" +# ] +# }, +# "visual": { +# "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2.tif", +# "type": "image/tiff; application=geotiff; profile=cloud-optimized", +# "title": "3-Band Visual", +# "roles": [ +# "visual" +# ] +# }, +# "udm": { +# "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2_analytic_udm.tif", +# "title": "Unusable Data Mask", +# "type": "image/tiff; application=geotiff;" +# }, +# "json-metadata": { +# "href": "http://remotedata.io/catalog/20201211_223832_CS2/extended-metadata.json", +# "title": "Extended Metadata", +# "type": "application/json", +# "roles": [ +# "metadata" +# ] +# }, +# "ephemeris": { +# "href": "http://cool-sat.com/catalog/20201211_223832_CS2/20201211_223832_CS2.EPH", +# "title": "Satellite Ephemeris Metadata" +# } +# } +# } +# linter = Linter(file, assets=True) + +# print(linter.valid_stac) + +# print(linter.error_type) + +# print(linter.error_msg) + +# for k,v in linter.create_best_practices_dict().items(): +# print(k,":",v) + +# print(linter.schema) + +# print(linter.file_name) \ No newline at end of file diff --git a/tests/test_lint.py b/tests/test_lint.py index 1ff0fe5..a9c1607 100644 --- a/tests/test_lint.py +++ b/tests/test_lint.py @@ -229,7 +229,7 @@ def test_linter_item_id_not_matching_file_name(): def test_linter_collection_catalog_id(): file = "sample_files/1.0.0/collection-no-title.json" linter = Linter(file) - assert linter.check_catalog_id_file_name() == False + assert linter.check_catalog_file_name() == False def test_linter_item_id_format_best_practices(): file = "sample_files/1.0.0/core-item-invalid-id.json" @@ -283,11 +283,11 @@ def test_self_in_links(): def test_catalog_name(): file = "sample_files/1.0.0/catalog.json" linter = Linter(file) - assert linter.check_catalog_id_file_name() + assert linter.check_catalog_file_name() file = "sample_files/1.0.0/collection.json" linter = Linter(file) - assert linter.check_catalog_id_file_name() - + assert linter.check_catalog_file_name() + def test_lint_dict_collection(): file = { "id": "simple-collection", @@ -398,7 +398,7 @@ def test_lint_dict_collection(): linter = Linter(file) assert linter.valid_stac == True assert linter.asset_type == "COLLECTION" - assert linter.check_catalog_id_file_name() == True + assert linter.check_catalog_file_name() == True def test_lint_dict_item(): file = {