def test_requester_pays(self) -> None: item = self.naip_item # Grab a random asset with the platform property asset = random.choice([ _asset for _asset in item.assets.values() if "storage:requester_pays" in _asset.to_dict() ]) storage_ext = StorageExtension.ext(asset) # Get self.assertEqual(storage_ext.requester_pays, asset.extra_fields.get("storage:requester_pays")) # Set new_requester_pays = True if not storage_ext.requester_pays else False storage_ext.requester_pays = new_requester_pays self.assertEqual(storage_ext.requester_pays, new_requester_pays) item.validate() # Set to None storage_ext.requester_pays = None self.assertNotIn("storage:requester_pays", asset.extra_fields)
def test_region(self) -> None: item = self.naip_item # Grab a random asset with the platform property asset = random.choice([ _asset for _asset in item.assets.values() if "storage:region" in _asset.to_dict() ]) storage_ext = StorageExtension.ext(asset) # Get self.assertEqual(storage_ext.region, asset.extra_fields.get("storage:region")) # Set new_region = random.choice( [val for val in CloudPlatform if val != storage_ext.region]) storage_ext.region = new_region self.assertEqual(storage_ext.region, new_region) item.validate() # Set to None storage_ext.region = None self.assertNotIn("storage:region", asset.extra_fields)
def test_summaries_adds_uri(self) -> None: col = self.naip_collection col.stac_extensions = [] self.assertRaisesRegex( pystac.ExtensionNotImplemented, r"Could not find extension schema URI.*", StorageExtension.summaries, col, False, ) _ = StorageExtension.summaries(col, add_if_missing=True) self.assertIn(StorageExtension.get_schema_uri(), col.stac_extensions) StorageExtension.remove_from(col) self.assertNotIn(StorageExtension.get_schema_uri(), col.stac_extensions)
def test_tier(self) -> None: col = self.naip_collection col_dict = col.to_dict() storage_summaries = StorageExtension.summaries(col) # Get self.assertEqual(storage_summaries.tier, col_dict["summaries"]["storage:tier"]) # Set new_tier_summary = [random.choice(ascii_letters)] self.assertNotEqual(storage_summaries.tier, new_tier_summary) storage_summaries.tier = new_tier_summary self.assertEqual(storage_summaries.tier, new_tier_summary) col_dict = col.to_dict() self.assertEqual(col_dict["summaries"]["storage:tier"], new_tier_summary)
def test_platform(self) -> None: col = self.naip_collection col_dict = col.to_dict() storage_summaries = StorageExtension.summaries(col) # Get self.assertEqual(storage_summaries.platform, col_dict["summaries"]["storage:platform"]) # Set new_platform_summary = [random.choice([v for v in CloudPlatform])] self.assertNotEqual(storage_summaries.platform, new_platform_summary) storage_summaries.platform = new_platform_summary self.assertEqual(storage_summaries.platform, new_platform_summary) col_dict = col.to_dict() self.assertEqual(col_dict["summaries"]["storage:platform"], new_platform_summary)
def test_platform(self) -> None: item = self.naip_item # Grab a random asset with the platform property asset = random.choice([ _asset for _asset in item.assets.values() if "storage:platform" in _asset.to_dict() ]) storage_ext = StorageExtension.ext(asset) # Get self.assertEqual(storage_ext.platform, asset.extra_fields.get("storage:platform")) # Set new_platform = random.choice( [val for val in CloudPlatform if val != storage_ext.platform]) storage_ext.platform = new_platform self.assertEqual(storage_ext.platform, new_platform) item.validate()
def test_requester_pays(self) -> None: col = self.naip_collection col_dict = col.to_dict() storage_summaries = StorageExtension.summaries(col) # Get self.assertEqual( storage_summaries.requester_pays, col_dict["summaries"]["storage:requester_pays"], ) # Set new_requester_pays_summary = [True] self.assertNotEqual(storage_summaries.requester_pays, new_requester_pays_summary) storage_summaries.requester_pays = new_requester_pays_summary self.assertEqual(storage_summaries.requester_pays, new_requester_pays_summary) col_dict = col.to_dict() self.assertEqual(col_dict["summaries"]["storage:requester_pays"], new_requester_pays_summary)
def test_item_apply(self) -> None: item = self.naip_item asset = random.choice(list(item.assets.values())) storage_ext = StorageExtension.ext(asset) new_platform = random.choice( [v for v in CloudPlatform if v != storage_ext.platform]) new_region = random.choice(ascii_letters) new_requestor_pays = random.choice( [v for v in {True, False} if v != storage_ext.requester_pays]) new_tier = random.choice(ascii_letters) storage_ext.apply( platform=new_platform, region=new_region, requester_pays=new_requestor_pays, tier=new_tier, ) self.assertEqual(storage_ext.platform, new_platform) self.assertEqual(storage_ext.region, new_region) self.assertEqual(storage_ext.requester_pays, new_requestor_pays) self.assertEqual(storage_ext.tier, new_tier)