Files
depot_django/booking/tests.py
T

49 lines
2.0 KiB
Python

from django.test import TestCase, Client
from django.urls import reverse
from django.contrib.auth import get_user_model
from booking.models import Booking
from common.models import LinesModel, ContainerTypeModel
class BookingViewsTestCase(TestCase):
def setUp(self):
self.client = Client()
DepotUser = get_user_model()
self.user = DepotUser.objects.create_user(username='testuser', password='password', user_type='EM')
self.client.login(username='testuser', password='password')
self.line = LinesModel.objects.create(name='Test Line')
self.container_type = ContainerTypeModel.objects.create(name='20ft')
self.booking = Booking.objects.create(
number='BOOK123',
container_type=self.container_type,
container_count=10,
line=self.line,
created_by=self.user.id,
updated_by=self.user.id
)
def test_booking_list_view(self):
response = self.client.get(reverse('booking-list'))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'booking/booking-list.html')
self.assertContains(response, self.booking.number)
def test_booking_create_view(self):
response = self.client.post(reverse('booking-create'), {
'number': 'BOOK456',
'container_type': self.container_type.id,
'container_count': 5,
'line': self.line.id,
})
self.assertEqual(response.status_code, 302)
self.assertTrue(Booking.objects.filter(number='BOOK456').exists())
def test_booking_update_view(self):
response = self.client.post(reverse('booking-update', args=[self.booking.id]), {
'number': 'BOOK123-updated',
'container_type': self.container_type.id,
'container_count': 15,
'line': self.line.id,
})
self.assertEqual(response.status_code, 302)
self.booking.refresh_from_db()
self.assertEqual(self.booking.number, 'BOOK123-updated')