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')