49 lines
2.0 KiB
Python
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') |