Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import datetime
- from django.test import TestCase
- from django.urls import reverse
- from faker import Factory as FakerFactory
- from reservations.factories import ReservationFactory
- from src.factories import UserFactory
- class TestListReservations(TestCase):
- def setUp(self):
- super(TestListReservations, self).setUp()
- self.fake = FakerFactory.create()
- def _format_qf(self, dt):
- return '/?start_date={}&end_date={}'.format(dt.strftime('%m/%d/%Y'),
- dt.strftime('%m/%d/%Y'))
- def test_anon_access(self):
- response = self.client.get(reverse('dashboard'))
- self.assertEquals(response.status_code, 302)
- self.assertRedirects(response, '/login?next=/')
- def test_display_empty_list(self):
- user = UserFactory()
- self.client.login(username=user.username, password='defaultpassword')
- response = self.client.get(reverse('dashboard'))
- self.assertEquals(response.status_code, 200)
- self.assertContains(response, 'No reservations')
- def test_display_only_current_reservations(self):
- user = UserFactory()
- current_reservation = ReservationFactory(author=user,service_date=self.fake.date_time_this_century(before_now=False, after_now=True))
- passed_reservation = ReservationFactory(author=user, service_date=self.fake.date_time_this_century(before_now=True, after_now=False))
- self.client.login(username=user.username, password='defaultpassword')
- response = self.client.get(reverse('dashboard'))
- self.assertContains(response, current_reservation.passenger_name)
- self.assertNotContains(response, passed_reservation.passenger_name)
- def test_quick_filters_yeterday(self):
- user = UserFactory(is_superuser=True)
- self.client.login(username=user.username, password='defaultpassword')
- yesterday = datetime.date.today() - datetime.timedelta(days=1)
- reservation = ReservationFactory(author=user,service_date=yesterday)
- response = self.client.get(self._format_qf(yesterday))
- self.assertContains(response, reservation.passenger_name)
- def test_quick_filter_deny_yesterday_for_nonadmins(self):
- user = UserFactory()
- self.client.login(username=user.username, password='defaultpassword')
- yesterday = datetime.date.today() - datetime.timedelta(days=1)
- reservation = ReservationFactory(author=user, service_date=yesterday)
- response = self.client.get(self._format_qf(yesterday))
- self.assertNotContains(response, reservation.passenger_name)
- def test_quick_filter_today(self):
- user = UserFactory()
- self.client.login(username=user.username, password='defaultpassword')
- today = datetime.date.today()
- reservation = ReservationFactory(author=user, service_date=today)
- response = self.client.get(self._format_qf(today))
- self.assertContains(response, reservation.passenger_name)
- def test_quick_filter_tomorrow(self):
- user = UserFactory()
- self.client.login(username=user.username, password='defaultpassword')
- tomorrow = datetime.date.today() + datetime.timedelta(days=1)
- reservation = ReservationFactory(author=user, service_date=tomorrow)
- response = self.client.get(self._format_qf(tomorrow))
- self.assertContains(response, reservation.passenger_name)
- def test_view_access_nonadmin(self):
- user1 = UserFactory()
- user2 = UserFactory()
- tomorrow = datetime.date.today() + datetime.timedelta(days=1)
- self.client.login(username=user1.username, password='defaultpassword')
- res1 = ReservationFactory(author=user1, service_date=tomorrow)
- res2 = ReservationFactory(author=user2, service_date=tomorrow)
- response = self.client.get(reverse('dashboard'))
- self.assertContains(response, res1.passenger_name)
- self.assertNotContains(response, res2.passenger_name)
- def test_view_access_admins(self):
- user1 = UserFactory(is_superuser=True)
- user2 = UserFactory()
- tomorrow = datetime.date.today() + datetime.timedelta(days=1)
- self.client.login(username=user1.username, password='defaultpassword')
- res1 = ReservationFactory(author=user1, service_date=tomorrow)
- res2 = ReservationFactory(author=user2, service_date=tomorrow)
- response = self.client.get(reverse('dashboard'))
- self.assertContains(response, res1.passenger_name)
- self.assertContains(response, res2.passenger_name)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement