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")
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")