示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
    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)
示例#6
0
    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()
示例#7
0
    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)
示例#8
0
    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)