def test_create_via_admin_serializer(self, _): """Test create source with admin serializer.""" source_data = { "name": "test1", "source_type": "AWS", "authentication": {"resource_name": "arn:aws::foo:bar"}, "billing_source": {"bucket": "/tmp/s3bucket"}, } mock_request = Mock(headers={HEADER_X_RH_IDENTITY: Config.SOURCES_FAKE_HEADER}) context = {"request": mock_request} serializer = AdminSourcesSerializer(data=source_data, context=context) with patch.object(ProviderAccessor, "cost_usage_source_ready", returns=True): if serializer.is_valid(raise_exception=True): instance = serializer.save() provider = Provider.objects.get(uuid=instance.koku_uuid) self.assertIsNotNone(provider) self.assertEqual(provider.name, instance.name) self.assertEqual(instance.source_uuid, instance.koku_uuid) else: self.fail("test_create_via_admin_serializer failed") source_data["name"] = "test2" source_data["authentication"]["resource_name"] = "arn:aws::foo:bar2" source_data["billing_source"]["bucket"] = "/tmp/mybucket" serializer = AdminSourcesSerializer(data=source_data, context=context) with patch.object(ProviderAccessor, "cost_usage_source_ready", returns=True): if serializer.is_valid(raise_exception=True): instance = serializer.save() provider = Provider.objects.get(uuid=instance.koku_uuid) self.assertIsNotNone(provider) self.assertEqual(provider.name, instance.name) self.assertEqual(instance.source_uuid, instance.koku_uuid) else: self.fail("test_create_via_admin_serializer failed")
def test_create_via_admin_serializer_bad_source_type(self, _): """Raise error for bad source type on create.""" source_data = { "name": "test", "source_type": "BAD", "authentication": {"resource_name": "arn:aws::foo:bar"}, "billing_source": {"bucket": "/tmp/s3bucket"}, } mock_request = Mock(headers={HEADER_X_RH_IDENTITY: Config.SOURCES_FAKE_HEADER}) context = {"request": mock_request} serializer = AdminSourcesSerializer(data=source_data, context=context) with self.assertRaises(ValidationError): if serializer.is_valid(raise_exception=True): serializer.save()