Skip to content

Commit

Permalink
Fix API and tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mkurek committed Aug 1, 2018
1 parent 050287e commit a7ed424
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 19 deletions.
2 changes: 1 addition & 1 deletion src/ralph/assets/api/serializers.py
Expand Up @@ -70,7 +70,7 @@ class Meta:
class ProfitCenterSerializer(RalphAPISerializer):
class Meta:
model = ProfitCenter
fields = ('id', 'name', 'description', 'url', 'business_segment')
fields = ('id', 'name', 'description', 'url')
depth = 1


Expand Down
1 change: 0 additions & 1 deletion src/ralph/assets/api/views.py
Expand Up @@ -23,7 +23,6 @@ class BusinessSegmentViewSet(RalphAPIViewSet):
class ProfitCenterViewSet(RalphAPIViewSet):
queryset = models.ProfitCenter.objects.all()
serializer_class = serializers.ProfitCenterSerializer
prefetch_related = ['business_segment']


class BudgetInfoViewSet(RalphAPIViewSet):
Expand Down
34 changes: 17 additions & 17 deletions src/ralph/assets/tests/factories.py
Expand Up @@ -200,10 +200,27 @@ class Meta:
django_get_or_create = ['name']


class BusinessSegmentFactory(DjangoModelFactory):
name = factory.Iterator(['IT', 'Ads', 'Research'])

class Meta:
model = BusinessSegment
django_get_or_create = ['name']


class ProfitCenterFactory(DjangoModelFactory):
name = factory.Iterator(['PC1', 'PC2', 'PC3'])

class Meta:
model = ProfitCenter
django_get_or_create = ['name']


class ServiceFactory(DjangoModelFactory):

name = factory.Iterator(['Backup systems', 'load_balancing', 'databases'])
uid = factory.Sequence(lambda n: 'sc-{}'.format(n))
business_segment = factory.SubFactory(BusinessSegmentFactory)

class Meta:
model = Service
Expand All @@ -220,23 +237,6 @@ class Meta:
django_get_or_create = ['service', 'environment']


class BusinessSegmentFactory(DjangoModelFactory):
name = factory.Iterator(['IT', 'Ads', 'Research'])

class Meta:
model = BusinessSegment
django_get_or_create = ['name']


class ProfitCenterFactory(DjangoModelFactory):
name = factory.Iterator(['PC1', 'PC2', 'PC3'])
business_segment = factory.SubFactory(BusinessSegmentFactory)

class Meta:
model = ProfitCenter
django_get_or_create = ['name']


class EthernetFactory(DjangoModelFactory):
base_object = factory.SubFactory(BaseObjectFactory)
label = factory.Sequence(lambda n: 'ETH#{}'.format(n))
Expand Down
43 changes: 43 additions & 0 deletions src/ralph/assets/tests/test_api.py
Expand Up @@ -20,6 +20,7 @@
ServiceEnvironment
)
from ralph.assets.tests.factories import (
BusinessSegmentFactory,
CategoryFactory,
ConfigurationClassFactory,
ConfigurationModuleFactory,
Expand Down Expand Up @@ -362,6 +363,48 @@ def test_patch_service_should_return_method_not_allowed(self):
)


class ProfitCenterAPITests(RalphAPITestCase):
def setUp(self):
super().setUp()
self.profit_center = ProfitCenterFactory()

def test_get_profit_center_list(self):
url = reverse('profitcenter-list')
response = self.client.get(url, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data['count'], 1)
self.assertEqual(
response.data['results'][0]['name'], self.profit_center.name
)

def test_get_profit_center_details(self):
url = reverse('profitcenter-detail', args=(self.profit_center.id,))
response = self.client.get(url, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data['name'], self.profit_center.name)


class BusinessSegmentAPITests(RalphAPITestCase):
def setUp(self):
super().setUp()
self.business_segment = BusinessSegmentFactory()

def test_get_business_segment_list(self):
url = reverse('businesssegment-list')
response = self.client.get(url, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data['count'], 1)
self.assertEqual(
response.data['results'][0]['name'], self.business_segment.name
)

def test_get_business_segment_details(self):
url = reverse('businesssegment-detail', args=(self.business_segment.id,))
response = self.client.get(url, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data['name'], self.business_segment.name)


class ManufacturerAPITests(RalphAPITestCase):
def setUp(self):
super().setUp()
Expand Down
2 changes: 2 additions & 0 deletions src/ralph/data_importer/management/commands/demodata.py
Expand Up @@ -18,6 +18,7 @@
)
from ralph.assets.tests.factories import (
BackOfficeAssetModelFactory,
BusinessSegmentFactory,
CategoryFactory,
DataCenterAssetModelFactory,
DataCenterCategoryFactory,
Expand Down Expand Up @@ -171,6 +172,7 @@ def generate_back_office(self):
)
for i in range(3):
ProfitCenterFactory()
BusinessSegmentFactory()

for status_id, name in back_office_status:
for i in range(int(per_page)):
Expand Down

0 comments on commit a7ed424

Please sign in to comment.