mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-29 20:16:44 +00:00
Refactor build API unit tests
This commit is contained in:
parent
9d099c81a7
commit
d76b873c00
@ -12,7 +12,7 @@ class InvenTreeAPITestCase(APITestCase):
|
|||||||
Base class for running InvenTree API tests
|
Base class for running InvenTree API tests
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# User information
|
# User information
|
||||||
username = 'testuser'
|
username = 'testuser'
|
||||||
password = 'mypassword'
|
password = 'mypassword'
|
||||||
email = 'test@testing.com'
|
email = 'test@testing.com'
|
||||||
@ -73,12 +73,12 @@ class InvenTreeAPITestCase(APITestCase):
|
|||||||
ruleset.save()
|
ruleset.save()
|
||||||
break
|
break
|
||||||
|
|
||||||
def get(self, url, code=200):
|
def get(self, url, data={}, code=200):
|
||||||
"""
|
"""
|
||||||
Issue a GET request
|
Issue a GET request
|
||||||
"""
|
"""
|
||||||
|
|
||||||
response = self.client.get(url, format='json')
|
response = self.client.get(url, data, format='json')
|
||||||
|
|
||||||
self.assertEqual(response.status_code, code)
|
self.assertEqual(response.status_code, code)
|
||||||
|
|
||||||
@ -91,4 +91,4 @@ class InvenTreeAPITestCase(APITestCase):
|
|||||||
|
|
||||||
response = self.client.post(url, data=data, format='json')
|
response = self.client.post(url, data=data, format='json')
|
||||||
|
|
||||||
return response
|
return response
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
""" Low level tests for the InvenTree API """
|
""" Low level tests for the InvenTree API """
|
||||||
|
|
||||||
from rest_framework.test import APITestCase
|
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
|
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.contrib.auth import get_user_model
|
|
||||||
|
|
||||||
from InvenTree.api_tester import InvenTreeAPITestCase
|
from InvenTree.api_tester import InvenTreeAPITestCase
|
||||||
|
|
||||||
|
@ -13,9 +13,10 @@ from part.models import Part
|
|||||||
from build.models import Build
|
from build.models import Build
|
||||||
|
|
||||||
from InvenTree.status_codes import BuildStatus
|
from InvenTree.status_codes import BuildStatus
|
||||||
|
from InvenTree.api_tester import InvenTreeAPITestCase
|
||||||
|
|
||||||
|
|
||||||
class BuildAPITest(APITestCase):
|
class BuildAPITest(InvenTreeAPITestCase):
|
||||||
"""
|
"""
|
||||||
Series of tests for the Build DRF API
|
Series of tests for the Build DRF API
|
||||||
"""
|
"""
|
||||||
@ -27,33 +28,16 @@ class BuildAPITest(APITestCase):
|
|||||||
'bom',
|
'bom',
|
||||||
'build',
|
'build',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# Required roles to access Build API endpoints
|
||||||
|
roles = [
|
||||||
|
'build.change',
|
||||||
|
'build.add'
|
||||||
|
]
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
# Create a user for auth
|
|
||||||
user = get_user_model()
|
|
||||||
|
|
||||||
self.user = user.objects.create_user(
|
|
||||||
username='testuser',
|
|
||||||
email='test@testing.com',
|
|
||||||
password='password'
|
|
||||||
)
|
|
||||||
|
|
||||||
# Put the user into a group with the correct permissions
|
super().setUp()
|
||||||
group = Group.objects.create(name='mygroup')
|
|
||||||
self.user.groups.add(group)
|
|
||||||
|
|
||||||
# Give the group *all* the permissions!
|
|
||||||
for rule in group.rule_sets.all():
|
|
||||||
rule.can_view = True
|
|
||||||
rule.can_change = True
|
|
||||||
rule.can_add = True
|
|
||||||
rule.can_delete = True
|
|
||||||
|
|
||||||
rule.save()
|
|
||||||
|
|
||||||
group.save()
|
|
||||||
|
|
||||||
self.client.login(username='testuser', password='password')
|
|
||||||
|
|
||||||
|
|
||||||
class BuildListTest(BuildAPITest):
|
class BuildListTest(BuildAPITest):
|
||||||
@ -63,34 +47,26 @@ class BuildListTest(BuildAPITest):
|
|||||||
|
|
||||||
url = reverse('api-build-list')
|
url = reverse('api-build-list')
|
||||||
|
|
||||||
def get(self, status_code=200, data={}):
|
|
||||||
|
|
||||||
response = self.client.get(self.url, data, format='json')
|
|
||||||
|
|
||||||
self.assertEqual(response.status_code, status_code)
|
|
||||||
|
|
||||||
return response.data
|
|
||||||
|
|
||||||
def test_get_all_builds(self):
|
def test_get_all_builds(self):
|
||||||
"""
|
"""
|
||||||
Retrieve *all* builds via the API
|
Retrieve *all* builds via the API
|
||||||
"""
|
"""
|
||||||
|
|
||||||
builds = self.get()
|
builds = self.get(self.url)
|
||||||
|
|
||||||
self.assertEqual(len(builds), 5)
|
self.assertEqual(len(builds.data), 5)
|
||||||
|
|
||||||
builds = self.get(data={'active': True})
|
builds = self.get(self.url, data={'active': True})
|
||||||
self.assertEqual(len(builds), 1)
|
self.assertEqual(len(builds.data), 1)
|
||||||
|
|
||||||
builds = self.get(data={'status': BuildStatus.COMPLETE})
|
builds = self.get(self.url, data={'status': BuildStatus.COMPLETE})
|
||||||
self.assertEqual(len(builds), 4)
|
self.assertEqual(len(builds.data), 4)
|
||||||
|
|
||||||
builds = self.get(data={'overdue': False})
|
builds = self.get(self.url, data={'overdue': False})
|
||||||
self.assertEqual(len(builds), 5)
|
self.assertEqual(len(builds.data), 5)
|
||||||
|
|
||||||
builds = self.get(data={'overdue': True})
|
builds = self.get(self.url, data={'overdue': True})
|
||||||
self.assertEqual(len(builds), 0)
|
self.assertEqual(len(builds.data), 0)
|
||||||
|
|
||||||
def test_overdue(self):
|
def test_overdue(self):
|
||||||
"""
|
"""
|
||||||
@ -109,7 +85,9 @@ class BuildListTest(BuildAPITest):
|
|||||||
target_date=in_the_past
|
target_date=in_the_past
|
||||||
)
|
)
|
||||||
|
|
||||||
builds = self.get(data={'overdue': True})
|
response = self.get(self.url, data={'overdue': True})
|
||||||
|
|
||||||
|
builds = response.data
|
||||||
|
|
||||||
self.assertEqual(len(builds), 1)
|
self.assertEqual(len(builds), 1)
|
||||||
|
|
||||||
@ -152,11 +130,15 @@ class BuildListTest(BuildAPITest):
|
|||||||
Build.objects.rebuild()
|
Build.objects.rebuild()
|
||||||
|
|
||||||
# Search by parent
|
# Search by parent
|
||||||
builds = self.get(data={'parent': parent.pk})
|
response = self.get(self.url, data={'parent': parent.pk})
|
||||||
|
|
||||||
|
builds = response.data
|
||||||
|
|
||||||
self.assertEqual(len(builds), 5)
|
self.assertEqual(len(builds), 5)
|
||||||
|
|
||||||
# Search by ancestor
|
# Search by ancestor
|
||||||
builds = self.get(data={'ancestor': parent.pk})
|
response = self.get(self.url, data={'ancestor': parent.pk})
|
||||||
|
|
||||||
|
builds = response.data
|
||||||
|
|
||||||
self.assertEqual(len(builds), 20)
|
self.assertEqual(len(builds), 20)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user