Advertisement
Guest User

Untitled

a guest
Feb 11th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.48 KB | None | 0 0
  1. import datetime
  2.  
  3. from django.test import TestCase
  4. from django.urls import reverse
  5. from faker import Factory as FakerFactory
  6.  
  7. from reservations.factories import ReservationFactory
  8. from src.factories import UserFactory
  9.  
  10.  
  11. class TestListReservations(TestCase):
  12.  
  13. def setUp(self):
  14. super(TestListReservations, self).setUp()
  15. self.fake = FakerFactory.create()
  16.  
  17. def _format_qf(self, dt):
  18. return '/?start_date={}&end_date={}'.format(dt.strftime('%m/%d/%Y'),
  19. dt.strftime('%m/%d/%Y'))
  20.  
  21. def test_anon_access(self):
  22. response = self.client.get(reverse('dashboard'))
  23. self.assertEquals(response.status_code, 302)
  24. self.assertRedirects(response, '/login?next=/')
  25.  
  26. def test_display_empty_list(self):
  27. user = UserFactory()
  28. self.client.login(username=user.username, password='defaultpassword')
  29. response = self.client.get(reverse('dashboard'))
  30. self.assertEquals(response.status_code, 200)
  31. self.assertContains(response, 'No reservations')
  32.  
  33. def test_display_only_current_reservations(self):
  34. user = UserFactory()
  35. current_reservation = ReservationFactory(author=user,service_date=self.fake.date_time_this_century(before_now=False, after_now=True))
  36. passed_reservation = ReservationFactory(author=user, service_date=self.fake.date_time_this_century(before_now=True, after_now=False))
  37. self.client.login(username=user.username, password='defaultpassword')
  38. response = self.client.get(reverse('dashboard'))
  39. self.assertContains(response, current_reservation.passenger_name)
  40. self.assertNotContains(response, passed_reservation.passenger_name)
  41.  
  42. def test_quick_filters_yeterday(self):
  43. user = UserFactory(is_superuser=True)
  44. self.client.login(username=user.username, password='defaultpassword')
  45. yesterday = datetime.date.today() - datetime.timedelta(days=1)
  46. reservation = ReservationFactory(author=user,service_date=yesterday)
  47. response = self.client.get(self._format_qf(yesterday))
  48. self.assertContains(response, reservation.passenger_name)
  49.  
  50. def test_quick_filter_deny_yesterday_for_nonadmins(self):
  51. user = UserFactory()
  52. self.client.login(username=user.username, password='defaultpassword')
  53. yesterday = datetime.date.today() - datetime.timedelta(days=1)
  54. reservation = ReservationFactory(author=user, service_date=yesterday)
  55. response = self.client.get(self._format_qf(yesterday))
  56. self.assertNotContains(response, reservation.passenger_name)
  57.  
  58. def test_quick_filter_today(self):
  59. user = UserFactory()
  60. self.client.login(username=user.username, password='defaultpassword')
  61. today = datetime.date.today()
  62. reservation = ReservationFactory(author=user, service_date=today)
  63. response = self.client.get(self._format_qf(today))
  64. self.assertContains(response, reservation.passenger_name)
  65.  
  66. def test_quick_filter_tomorrow(self):
  67. user = UserFactory()
  68. self.client.login(username=user.username, password='defaultpassword')
  69. tomorrow = datetime.date.today() + datetime.timedelta(days=1)
  70. reservation = ReservationFactory(author=user, service_date=tomorrow)
  71. response = self.client.get(self._format_qf(tomorrow))
  72. self.assertContains(response, reservation.passenger_name)
  73.  
  74. def test_view_access_nonadmin(self):
  75. user1 = UserFactory()
  76. user2 = UserFactory()
  77. tomorrow = datetime.date.today() + datetime.timedelta(days=1)
  78. self.client.login(username=user1.username, password='defaultpassword')
  79.  
  80. res1 = ReservationFactory(author=user1, service_date=tomorrow)
  81. res2 = ReservationFactory(author=user2, service_date=tomorrow)
  82.  
  83. response = self.client.get(reverse('dashboard'))
  84. self.assertContains(response, res1.passenger_name)
  85. self.assertNotContains(response, res2.passenger_name)
  86.  
  87. def test_view_access_admins(self):
  88. user1 = UserFactory(is_superuser=True)
  89. user2 = UserFactory()
  90. tomorrow = datetime.date.today() + datetime.timedelta(days=1)
  91. self.client.login(username=user1.username, password='defaultpassword')
  92.  
  93. res1 = ReservationFactory(author=user1, service_date=tomorrow)
  94. res2 = ReservationFactory(author=user2, service_date=tomorrow)
  95.  
  96. response = self.client.get(reverse('dashboard'))
  97. self.assertContains(response, res1.passenger_name)
  98. self.assertContains(response, res2.passenger_name)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement