66 lines
2.9 KiB
Python
66 lines
2.9 KiB
Python
from django.test import TestCase, Client
|
|
from django.contrib.auth.models import Permission
|
|
from knox.models import AuthToken
|
|
|
|
from authentication.models import ExtendedUser
|
|
from inventory.models import Container
|
|
|
|
|
|
class ContainerTestCase(TestCase):
|
|
|
|
def setUp(self):
|
|
self.user = ExtendedUser.objects.create_user('testuser', 'test', 'test')
|
|
self.user.user_permissions.add(*Permission.objects.all())
|
|
self.token = AuthToken.objects.create(user=self.user)
|
|
self.client = Client(headers={'Authorization': 'Token ' + self.token[1]})
|
|
|
|
def test_empty(self):
|
|
response = self.client.get('/api/2/boxes/')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.json(), [])
|
|
|
|
def test_members(self):
|
|
Container.objects.create(name='BOX')
|
|
response = self.client.get('/api/2/boxes/')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(len(response.json()), 1)
|
|
self.assertEqual(response.json()[0]['cid'], 1)
|
|
self.assertEqual(response.json()[0]['name'], 'BOX')
|
|
self.assertEqual(response.json()[0]['itemCount'], 0)
|
|
|
|
def test_multi_members(self):
|
|
Container.objects.create(name='BOX 1')
|
|
Container.objects.create(name='BOX 2')
|
|
Container.objects.create(name='BOX 3')
|
|
response = self.client.get('/api/2/boxes/')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(len(response.json()), 3)
|
|
|
|
def test_create_container(self):
|
|
response = self.client.post('/api/2/box/', {'name': 'BOX'})
|
|
self.assertEqual(response.status_code, 201)
|
|
self.assertEqual(response.json()['cid'], 1)
|
|
self.assertEqual(response.json()['name'], 'BOX')
|
|
self.assertEqual(response.json()['itemCount'], 0)
|
|
self.assertEqual(len(Container.objects.all()), 1)
|
|
self.assertEqual(Container.objects.all()[0].cid, 1)
|
|
self.assertEqual(Container.objects.all()[0].name, 'BOX')
|
|
|
|
def test_update_container(self):
|
|
box = Container.objects.create(name='BOX 1')
|
|
response = self.client.put(f'/api/2/box/{box.cid}/', {'name': 'BOX 2'}, content_type='application/json')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.json()['cid'], 1)
|
|
self.assertEqual(response.json()['name'], 'BOX 2')
|
|
self.assertEqual(response.json()['itemCount'], 0)
|
|
self.assertEqual(len(Container.objects.all()), 1)
|
|
self.assertEqual(Container.objects.all()[0].cid, 1)
|
|
self.assertEqual(Container.objects.all()[0].name, 'BOX 2')
|
|
|
|
def test_delete_container(self):
|
|
box = Container.objects.create(name='BOX 1')
|
|
Container.objects.create(name='BOX 2')
|
|
self.assertEqual(len(Container.objects.all()), 2)
|
|
response = self.client.delete(f'/api/2/box/{box.cid}/')
|
|
self.assertEqual(response.status_code, 204)
|
|
self.assertEqual(len(Container.objects.all()), 1)
|