def test_put_for_ocp_provider(self): """Test PUT update for OCP provider.""" response, provider = create_generic_provider(Provider.PROVIDER_OCP, self.headers) self.assertEqual(response.status_code, status.HTTP_201_CREATED) json_result = response.json() name = "new_name" auth = {"provider_resource_name": "testing_123"} provider = copy.deepcopy(PROVIDERS[Provider.PROVIDER_OCP]) provider["name"] = name provider["authentication"] = auth url = reverse("provider-detail", args=[json_result.get("uuid")]) client = APIClient() put_response = client.put(url, data=provider, format="json", **self.headers) self.assertEqual(put_response.status_code, status.HTTP_200_OK) put_json_result = put_response.json() self.assertEqual(put_json_result.get("name"), name) self.assertEqual( put_json_result.get("authentication").get("credentials"), auth)
def setUp(self): """Set up the customer view tests.""" super().setUp() _, self.provider = create_generic_provider('OCP', self.headers) self.data_generator = OCPAWSReportDataGenerator( self.tenant, self.provider) self.data_generator.add_data_to_tenant()
def test_put_for_aws_provider_error(self): """Test PUT update for AWS provider with error.""" with patch.object(ProviderAccessor, "cost_usage_source_ready", returns=True): response, provider = create_generic_provider( Provider.PROVIDER_AWS, self.headers) self.assertEqual(response.status_code, status.HTTP_201_CREATED) with patch.object(ProviderAccessor, "cost_usage_source_ready", side_effect=serializers.ValidationError): json_result = response.json() name = "new_name" provider = copy.deepcopy(PROVIDERS[Provider.PROVIDER_AWS]) provider["name"] = name url = reverse("provider-detail", args=[json_result.get("uuid")]) client = APIClient() put_response = client.put(url, data=provider, format="json", **self.headers) self.assertEqual(put_response.status_code, status.HTTP_400_BAD_REQUEST) self.assertFalse( Provider.objects.get(uuid=json_result.get("uuid")).active)
def test_group_bys_with_second_group_by_tag(self): """Test that a group by project followed by a group by tag does not error.""" _, provider = create_generic_provider(Provider.PROVIDER_OCP, self.headers) data_generator = OCPAzureReportDataGenerator(self.tenant, provider) data_generator.add_data_to_tenant() with tenant_context(self.tenant): labels = (OCPAzureCostLineItemDailySummary.objects.filter( usage_start__gte=self.dh.last_month_start).filter( usage_start__lte=self.dh.last_month_end).values( *["tags"]).first()) tags = labels.get("tags") group_by_key = list(tags.keys())[0] client = APIClient() for url in URLS: for group_by in GROUP_BYS: params = { "filter[resolution]": "monthly", "filter[time_scope_value]": "-2", "filter[time_scope_units]": "month", f"group_by[{group_by}]": "*", f"group_by[tag:{group_by_key}]": "*", } url = url + "?" + urlencode(params, quote_via=quote_plus) response = client.get(url, **self.headers) self.assertEqual(response.status_code, status.HTTP_200_OK)
def setUp(self): """Set up the customer view tests.""" super().setUp() self.dh = DateHelper() self.ten_days_ago = self.dh.n_days_ago(self.dh.today, 9) _, self.provider = create_generic_provider(Provider.PROVIDER_AZURE, self.headers) self.data_generator = AzureReportDataGenerator(self.tenant, self.provider) self.data_generator.add_data_to_tenant()
def setUp(self): """Set up the tests.""" super().setUp() self.dh = DateHelper() _, self.provider = create_generic_provider(Provider.PROVIDER_AZURE, self.headers) generator = OCPAWSReportDataGenerator(self.tenant, self.provider) generator.add_data_to_tenant() generator.add_aws_data_to_tenant()
def _create_source_and_provider(self, provider_type, source_id): """Create Provider.""" _, provider = create_generic_provider(provider_type, self.headers) source = Sources.objects.get(source_id=source_id) source.source_uuid = provider.uuid authentication = {"credentials": provider.authentication.credentials} if authentication.get("credentials").get("provider_resource_name"): authentication["resource_name"] = authentication["credentials"]["provider_resource_name"] source.authentication = authentication billing_source = {"data_source": provider.billing_source.data_source} source.billing_source = billing_source source.save() return source
def setUp(self): """Set up the customer view tests.""" super().setUp() self.dh = DateHelper() _, self.provider = create_generic_provider(Provider.PROVIDER_OCP, self.headers) self.this_month_filter = {"usage_start__gte": self.dh.this_month_start} self.ten_day_filter = {"usage_start__gte": self.dh.n_days_ago(self.dh.today, 9)} self.thirty_day_filter = {"usage_start__gte": self.dh.n_days_ago(self.dh.today, 29)} self.last_month_filter = { "usage_start__gte": self.dh.last_month_start, "usage_end__lte": self.dh.last_month_end, } self.generator = OCPAzureReportDataGenerator(self.tenant, self.provider)
def test_put_for_provider_type_change(self, mock_access): """Test that provider_type change thru PUT request results in error.""" response, provider = create_generic_provider('AWS', self.headers) self.assertEqual(response.status_code, status.HTTP_201_CREATED) json_result = response.json() provider = copy.deepcopy(PROVIDERS['AWS']) provider['type'] = 'OCP' url = reverse('provider-detail', args=[json_result.get('uuid')]) client = APIClient() put_response = client.put(url, data=provider, format='json', **self.headers) self.assertEqual(put_response.status_code, status.HTTP_400_BAD_REQUEST)
def test_put_for_provider_type_change(self, mock_access): """Test that provider_type change thru PUT request results in error.""" response, provider = create_generic_provider(Provider.PROVIDER_AWS, self.headers) self.assertEqual(response.status_code, status.HTTP_201_CREATED) json_result = response.json() provider = copy.deepcopy(PROVIDERS[Provider.PROVIDER_AWS]) provider["type"] = Provider.PROVIDER_OCP url = reverse("provider-detail", args=[json_result.get("uuid")]) client = APIClient() put_response = client.put(url, data=provider, format="json", **self.headers) self.assertEqual(put_response.status_code, status.HTTP_400_BAD_REQUEST)
def test_patch_not_supported(self): """Test that PATCH request returns 405.""" response, provider = create_generic_provider('AZURE', self.headers) self.assertEqual(response.status_code, status.HTTP_201_CREATED) json_result = response.json() name = 'new_name' provider = copy.deepcopy(PROVIDERS['AZURE']) provider['name'] = name url = reverse('provider-detail', args=[json_result.get('uuid')]) client = APIClient() put_response = client.patch(url, data=provider, format='json', **self.headers) self.assertEqual(put_response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED)
def test_patch_not_supported(self): """Test that PATCH request returns 405.""" response, provider = create_generic_provider(Provider.PROVIDER_AZURE, self.headers) self.assertEqual(response.status_code, status.HTTP_201_CREATED) json_result = response.json() name = "new_name" provider = copy.deepcopy(PROVIDERS[Provider.PROVIDER_AZURE]) provider["name"] = name url = reverse("provider-detail", args=[json_result.get("uuid")]) client = APIClient() put_response = client.patch(url, data=provider, format="json", **self.headers) self.assertEqual(put_response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED)
def setUp(self): """Set up the customer view tests.""" super().setUp() self.dh = DateHelper() _, self.provider = create_generic_provider('OCP', self.headers) self.this_month_filter = {'usage_start__gte': self.dh.this_month_start} self.ten_day_filter = { 'usage_start__gte': self.dh.n_days_ago(self.dh.today, 9) } self.thirty_day_filter = { 'usage_start__gte': self.dh.n_days_ago(self.dh.today, 29) } self.last_month_filter = { 'usage_start__gte': self.dh.last_month_start, 'usage_end__lte': self.dh.last_month_end, } OCPAWSReportDataGenerator(self.tenant, self.provider).add_data_to_tenant()
def test_put_for_azure_provider(self, mock_access): """Test PUT update for AZURE provider.""" response, provider = create_generic_provider('AZURE', self.headers) self.assertEqual(response.status_code, status.HTTP_201_CREATED) json_result = response.json() name = 'new_name' provider = copy.deepcopy(PROVIDERS['AZURE']) provider['name'] = name url = reverse('provider-detail', args=[json_result.get('uuid')]) client = APIClient() put_response = client.put(url, data=provider, format='json', **self.headers) self.assertEqual(put_response.status_code, status.HTTP_200_OK) put_json_result = put_response.json() self.assertEqual(put_json_result.get('name'), name)
def test_put_for_azure_provider(self, mock_access): """Test PUT update for AZURE provider.""" response, provider = create_generic_provider(Provider.PROVIDER_AZURE, self.headers) self.assertEqual(response.status_code, status.HTTP_201_CREATED) json_result = response.json() name = "new_name" provider = copy.deepcopy(PROVIDERS[Provider.PROVIDER_AZURE]) provider["name"] = name url = reverse("provider-detail", args=[json_result.get("uuid")]) client = APIClient() put_response = client.put(url, data=provider, format="json", **self.headers) self.assertEqual(put_response.status_code, status.HTTP_200_OK) put_json_result = put_response.json() self.assertEqual(put_json_result.get("name"), name)
def test_deleted_before_put_returns_400(self): """Test if 400 is raised when a PUT is called on deleted provider.""" response, provider = create_generic_provider('AZURE', self.headers) self.assertEqual(response.status_code, status.HTTP_201_CREATED) json_result = response.json() name = 'new_name' provider = copy.deepcopy(PROVIDERS['AZURE']) provider['name'] = name url = reverse('provider-detail', args=[json_result.get('uuid')]) client = APIClient() response = client.delete(url, **self.headers) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) url = reverse('provider-detail', args=[json_result.get('uuid')]) client = APIClient() put_response = client.put(url, data=provider, format='json', **self.headers) self.assertEqual(put_response.status_code, status.HTTP_404_NOT_FOUND)
def test_put_for_ocp_provider(self): """Test PUT update for OCP provider.""" response, provider = create_generic_provider('OCP', self.headers) self.assertEqual(response.status_code, status.HTTP_201_CREATED) json_result = response.json() name = 'new_name' auth = {'provider_resource_name': 'testing_123'} provider = copy.deepcopy(PROVIDERS['OCP']) provider['name'] = name provider['authentication'] = auth url = reverse('provider-detail', args=[json_result.get('uuid')]) client = APIClient() put_response = client.put(url, data=provider, format='json', **self.headers) self.assertEqual(put_response.status_code, status.HTTP_200_OK) put_json_result = put_response.json() self.assertEqual(put_json_result.get('name'), name) self.assertEqual( put_json_result.get('authentication').get('credentials'), auth)
def setUp(self): """Set up the customer view tests.""" super().setUp() _, self.provider = create_generic_provider(Provider.PROVIDER_OCP, self.headers) OCPReportDataGenerator(self.tenant, self.provider).add_data_to_tenant()
def setUp(self): """Set up the customer view tests.""" super().setUp() _, self.provider = create_generic_provider('AZURE', self.headers) AzureReportDataGenerator(self.tenant, self.provider).add_data_to_tenant()
def test_create_azure_type_camel_casing(self): """Test creating a provider with type camel cased.""" response, _ = create_generic_provider("AzUrE", self.headers) json_result = response.json() self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(json_result.get("type"), Provider.PROVIDER_AZURE)