예제 #1
0
    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")
예제 #2
0
 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()