You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
depot_django/containers/tests.py

48 lines
2.1 KiB
Python

from django.test import TestCase, Client
from django.urls import reverse
from django.contrib.auth import get_user_model
from containers.models import Container
from common.models import LinesModel, ContainerTypeModel
from preinfo.models import Preinfo
class ContainerViewsTestCase(TestCase):
def setUp(self):
self.client = Client()
DepotUser = get_user_model()
self.user = DepotUser.objects.create_user(username='testuser', password='password', user_type='E')
self.client.login(username='testuser', password='password')
self.line = LinesModel.objects.create(name='Test Line')
self.container_type = ContainerTypeModel.objects.create(name='20ft')
self.preinfo = Preinfo.objects.create(number='PRE123', line=self.line, container_type=self.container_type)
self.container = Container.objects.create(
number='TEST1234567',
line=self.line,
container_type=self.container_type,
received_by=self.user,
preinfo=self.preinfo
)
def test_container_list_view(self):
response = self.client.get(reverse('container-list'))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'containers/container-list.html')
self.assertContains(response, self.container.number)
def test_container_receive_view(self):
response = self.client.post(reverse('container-receive'), {
'number': 'TEST7654321',
'line': self.line.id,
'container_type': self.container_type.id,
'preinfo': self.preinfo.id,
})
self.assertEqual(response.status_code, 302)
self.assertTrue(Container.objects.filter(number='TEST7654321').exists())
def test_container_expedition_view(self):
response = self.client.post(reverse('container-expedition', args=[self.container.id]), {
'expedition_vehicle': 'TRUCK123',
})
self.assertEqual(response.status_code, 302)
self.container.refresh_from_db()
self.assertTrue(self.container.expedited)
self.assertEqual(self.container.expedition_vehicle, 'TRUCK123')