some tests
parent
8294db9189
commit
06a3b105d3
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,49 +1,99 @@
|
||||
from django.test import TestCase, Client
|
||||
from django.urls import reverse
|
||||
from django.urls import reverse, reverse_lazy
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
from accounts.models import ClientPermission
|
||||
from booking.models import Booking
|
||||
from common.models import LinesModel, ContainerTypeModel
|
||||
from common.models import LinesModel, ContainerTypeModel, CompanyModel
|
||||
|
||||
|
||||
class BookingViewsTestCase(TestCase):
|
||||
def setUp(self):
|
||||
self.company = CompanyModel.objects.create(name='Test Company')
|
||||
self.line = LinesModel.objects.create(name='Test Line', company_id=self.company.id)
|
||||
self.container_type = ContainerTypeModel.objects.get(name='20GP')
|
||||
|
||||
self.user_password = 'password'
|
||||
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.user_client_no_rights = DepotUser.objects.create_user(username='user_client_no_rights', password=self.user_password, user_type='CL', email='user_client_no_rights@gmail.com')
|
||||
|
||||
self.user_client_all_rights = DepotUser.objects.create_user(username='user_client_all_rights', password=self.user_password, user_type='CL', email='user_client_all_rights@gmail.com', line=self.line, company=self.company)
|
||||
self.user_client_all_rights.company_permissions.add(ClientPermission.objects.get(codename='can_view_booking').id)
|
||||
self.user_client_all_rights.company_permissions.add(ClientPermission.objects.get(codename='can_manage_booking').id)
|
||||
self.user_client_all_rights.company_permissions.add(ClientPermission.objects.get(codename='can_view_preinfo').id)
|
||||
self.user_client_all_rights.company_permissions.add(ClientPermission.objects.get(codename='can_manage_preinfo').id)
|
||||
self.user_client_all_rights.company_permissions.add(ClientPermission.objects.get(codename='can_view_payment').id)
|
||||
self.user_client_all_rights.company_permissions.add(ClientPermission.objects.get(codename='can_manage_payment').id)
|
||||
self.user_client_all_rights.company_permissions.add(ClientPermission.objects.get(codename='can_manage_company_users').id)
|
||||
|
||||
|
||||
self.user_employee_no_rights = DepotUser.objects.create_user(username='user_employee_no_rights', password=self.user_password, user_type='EM', email='user_employee_no_rights@gmail.com')
|
||||
|
||||
self.user_employee_all_rights = DepotUser.objects.create_user(username='user_employee_all_rights', password=self.user_password, user_type='EM', email='user_employee_all_rights@gmail.com')
|
||||
self.user_employee_all_rights.employee_permissions.add(1)
|
||||
self.user_employee_all_rights.employee_permissions.add(2)
|
||||
self.user_employee_all_rights.employee_permissions.add(3)
|
||||
self.user_employee_all_rights.employee_permissions.add(4)
|
||||
self.user_employee_all_rights.employee_permissions.add(5)
|
||||
|
||||
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
|
||||
created_by=self.user_employee_all_rights.id,
|
||||
updated_by=self.user_employee_all_rights.id,
|
||||
vehicles='',
|
||||
vehicles_left='',
|
||||
|
||||
)
|
||||
|
||||
def test_booking_list_view(self):
|
||||
response = self.client.get(reverse('booking-list'))
|
||||
def test_employee_booking_list_view__anonymouse_user__expect_redirect_302(self):
|
||||
response = self.client.get(reverse_lazy('employee_bookings'))
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
def test_employee_booking_list_view__client_user_login__expect_forbidden_403(self):
|
||||
self.client.login(username=self.user_client_no_rights.username, password=self.user_password)
|
||||
response = self.client.get(reverse_lazy('employee_bookings'))
|
||||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
def test_employee_booking_list_view__user_login__expect_redirect_200(self):
|
||||
self.client.login(username=self.user_employee_no_rights.username, password=self.user_password)
|
||||
response = self.client.get(reverse_lazy('employee_bookings'))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_booking_list_view__user_all_rights__expect_OK(self):
|
||||
self.client.login(username=self.user_employee_all_rights.username, password=self.user_password)
|
||||
response = self.client.get(reverse_lazy('employee_bookings'))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, 'booking/booking-list.html')
|
||||
|
||||
self.assertTemplateUsed(response, 'employee/booking-list.html')
|
||||
self.assertContains(response, self.booking.number)
|
||||
|
||||
def test_booking_create_view(self):
|
||||
response = self.client.post(reverse('booking-create'), {
|
||||
self.assertTrue( self.user_client_all_rights.has_company_perm('can_view_booking'))
|
||||
self.client.login(username=self.user_client_all_rights.username, password=self.user_password)
|
||||
|
||||
response = self.client.post(reverse('client_booking_create'), {
|
||||
'number': 'BOOK456',
|
||||
'container_type': self.container_type.id,
|
||||
'container_count': 5,
|
||||
'line': self.line.id,
|
||||
'vehicles': 'Truck1,Truck2',
|
||||
'vehicles_left': 'Truck1,Truck2',
|
||||
})
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
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')
|
||||
# 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')
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue