Hide keyboard shortcuts

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 

7 

8class TestClient(TestCase): 

9 

10 fixtures = ['testsdata.json'] 

11 

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) 

17 

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) 

23 

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) 

30 

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) 

38 

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) 

46 

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) 

56 

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) 

65 

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) 

74 

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) 

90 

91if __name__ == "__main__": 

92 unittest.main()