示例#1
0
    def test_provider_create(self, mock_header, mock_request_info, mock_delay):
        mock_request_info.return_value = self.User, self.Customer

        serializer = AdminSourcesSerializer(context=self.request_context)
        source = {
            "source_id": 10,
            "name": "ProviderAWS",
            "source_type": "AWS",
            "authentication": {
                "resource_name":
                "arn:aws:iam::111111111111:role/CostManagement"
            },
            "billing_source": {
                "bucket": "first-bucket"
            },
            "auth_header": Config.SOURCES_FAKE_HEADER,
            "account_id": "acct10001",
            "offset": 10,
        }
        with patch.object(ProviderAccessor,
                          "cost_usage_source_ready",
                          returns=True):
            instance = serializer.create(source)
        self.assertEqual(instance.billing_source.get("bucket"), "first-bucket")

        serializer = SourcesSerializer(context=self.request_context)
        validated = {"billing_source": {"bucket": "second-bucket"}}
        with patch.object(ProviderAccessor,
                          "cost_usage_source_ready",
                          returns=True):
            instance2 = serializer.update(instance, validated)
        self.assertEqual(instance2.billing_source.get("bucket"),
                         "second-bucket")
示例#2
0
    def test_provider_create(self, mock_header, mock_request_info, _):
        mock_request_info.return_value = self.User, self.Customer

        serializer = AdminSourcesSerializer(context=self.request_context)
        source = {
            "source_id": 10,
            "name": "ProviderAWS",
            "source_type": "AWS",
            "authentication": {
                "credentials": {
                    "role_arn": "arn:aws:iam::111111111111:role/CostManagement"
                }
            },
            "billing_source": {
                "data_source": {
                    "bucket": "first-bucket"
                }
            },
            "auth_header": Config.SOURCES_FAKE_HEADER,
            "account_id": "acct10001",
            "offset": 10,
        }
        with patch.object(ProviderAccessor,
                          "cost_usage_source_ready",
                          returns=True):
            instance = serializer.create(source)
        self.assertEqual(
            instance.billing_source.get("data_source", {}).get("bucket"),
            "first-bucket")

        serializer = SourcesSerializer(context=self.request_context)
        validated = {
            "billing_source": {
                "data_source": {
                    "bucket": "second-bucket"
                }
            }
        }
        with patch.object(ProviderAccessor,
                          "cost_usage_source_ready",
                          returns=True):
            with patch("sources.api.serializers.ServerProxy") as mock_client:
                mock_sources_client = MockSourcesClient(
                    "http://mock-soures-client")
                mock_client.return_value.__enter__.return_value = mock_sources_client
                instance2 = serializer.update(instance, validated)

        self.assertEqual(
            instance2.billing_source.get("data_source", {}).get("bucket"),
            "second-bucket")