Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from django.test import TestCase, Client
2from django.urls import reverse
3from datetime import datetime, timezone
4import json
5from policorp.tests import aux
6from policorp.models import Availability, Booking, User, Location
8class TestClient(TestCase):
10 fixtures = ['testsdata.json']
12 def test_tasks_view_return_200(self):
13 """*** Tasks view get request needs to be with response 200 ***"""
14 c = Client()
15 response = c.get(reverse('policorp:tasks'))
16 self.assertEqual(response.status_code, 200)
18 def test_availabilities_view_return_200(self):
19 """*** Availabilities view get request needs to be with response 200 ***"""
20 c = Client()
21 response = c.get(reverse('policorp:availabilities', kwargs={'taskid': 1}))
22 self.assertEqual(response.status_code, 200)
24 def test_dailyavailabilities_view_return_200(self):
25 """*** Daily Availabilities view get request needs to be with response 200 ***"""
26 c = Client()
27 datestr = datetime.now(timezone.utc).date().isoformat().replace('-','')
28 response = c.get(reverse('policorp:dailyavailabilities', kwargs={'taskid': 1, 'date': datestr}))
29 self.assertEqual(response.status_code, 200)
31 def test_book_view_return_201(self):
32 """*** Booking an availability with a post request should return 201 ****"""
33 c = Client()
34 u = aux.createUser('foo', 'foo@example.com', 'example')
35 c.login(username='foo', password='example')
36 response = c.post(reverse('policorp:book', kwargs={'availabilityid': 1}))
37 self.assertEqual(response.status_code, 201)
39 def test_myschedule_view_return_200(self):
40 """*** My Schedule view get request needs to be with response 200, logged in ***"""
41 c = Client()
42 u = aux.createUser('foo', 'foo@example.com', 'example')
43 c.login(username='foo', password='example')
44 response = c.get(reverse('policorp:myschedule'))
45 self.assertEqual(response.status_code, 200)
47 def test_cancelbooking_view_return_201(self):
48 """*** Cancelling a booking with a post request should return 201 ****"""
49 user1 = aux.createUser('foo', 'foo@example.com', 'example')
50 availability1 = Availability.objects.get(pk=1)
51 b1 = Booking.objects.book(availability1, user1)
52 c = Client()
53 c.login(username='foo', password='example')
54 response = c.post(reverse('policorp:cancelbooking', kwargs={'bookingid': b1.id}))
55 self.assertEqual(response.status_code, 201)
57 def test_mysupervisedlocations_view_return_200(self):
58 """*** My supervised locations get request needs to be with response 200 ***"""
59 user = User.objects.create_supervisor('foo', 'foo@example.com', 'example')
60 Location.objects.get(pk=1).assign_supervisor(user)
61 c = Client()
62 c.login(username='foo', password='example')
63 response = c.get(reverse('policorp:mysupervisedlocations'))
64 self.assertEqual(response.status_code, 200)
66 def test_locationschedule_view_return_200(self):
67 """*** Location schedule get request needs to be with response 200 ***"""
68 user = User.objects.create_supervisor('foo', 'foo@example.com', 'example')
69 Location.objects.get(pk=1).assign_supervisor(user)
70 c = Client()
71 c.login(username='foo', password='example')
72 response = c.get(reverse('policorp:locationschedule', kwargs={'locationid': 1, 'date': '20210102'}))
73 self.assertEqual(response.status_code, 200)
75 def test_createavailabilities_view_return_201(self):
76 """*** Creating an availability with a post request should return 201 ****"""
77 user1 = User.objects.create_supervisor('foo', 'foo@example.com', 'example')
78 Location.objects.get(pk=1).assign_supervisor(user1)
79 c = Client()
80 c.login(username='foo', password='example')
81 body = [{
82 "locationid": 1,
83 "taskid": 1,
84 "when": datetime.now(tz=timezone.utc)
85 }]
86 response = c.post( reverse('policorp:createavailabilities'),
87 data=json.dumps(body, cls=aux.DateTimeEncoder),
88 content_type='application/json')
89 self.assertEqual(response.status_code, 201)
91if __name__ == "__main__":
92 unittest.main()