def setUp(self): super().setUp() # individual self.instance1 = FactoryFloor.TripRequestFactory() FactoryFloor.TravellerFactory(request=self.instance1) # group self.instance2 = FactoryFloor.TripRequestFactory() FactoryFloor.TravellerFactory(request=self.instance2) FactoryFloor.TravellerFactory(request=self.instance2) self.test_url1 = reverse_lazy('travel:request_print', args=[self.instance1.pk]) self.test_url2 = reverse_lazy('travel:request_print', args=[self.instance2.pk]) self.expected_template1 = 'travel/traf/single.html' self.expected_template2 = 'travel/traf/group.html' self.user1 = self.get_and_login_user(self.instance1.created_by) self.user2 = self.get_and_login_user(self.instance2.created_by)
def test_get_related_requests(self): user = UserFactory() # scenario 1 --> they are a creator trip_request1 = FactoryFloor.TripRequestFactory(created_by=user) self.assertIn(trip_request1, utils.get_related_requests(user)) # scenario 2 --> they are a traveller trip_request2 = FactoryFloor.TripRequestFactory(created_by=UserFactory()) FactoryFloor.TravellerFactory(request=trip_request2, user=user) self.assertIn(trip_request2, utils.get_related_requests(user))
def test_get_adm_eligible_trips(self): trip = FactoryFloor.TripFactory(is_adm_approval_required=False, start_date=timezone.now(), trip_subcategory_id=8) self.assertNotIn(trip, utils.get_adm_eligible_trips()) trip.is_adm_approval_required = True trip.save() self.assertNotIn(trip, utils.get_adm_eligible_trips()) trip.status = 41 trip.save() self.assertNotIn(trip, utils.get_adm_eligible_trips()) trip_request = FactoryFloor.TripRequestFactory(trip=trip) FactoryFloor.TravellerFactory(request=trip_request) self.assertNotIn(trip, utils.get_adm_eligible_trips()) trip_request.status = 12 trip_request.save() self.assertIn(trip, utils.get_adm_eligible_trips())
def test_can_modify_rules(self): activate('en') # actors trip_request = FactoryFloor.TripRequestFactory() traveller = FactoryFloor.TravellerFactory(request=trip_request) reg_user = self.get_and_login_user() admin_user = self.get_and_login_regional_admin() adm_admin_user = self.get_and_login_admin() # RULE 1: travel admin = True self.assertEqual(can_modify_request(admin_user, trip_request.id), True) self.assertEqual(can_modify_request(adm_admin_user, trip_request.id), True) # RULE 2: a current reviewer; they must be able to edit a child trip and the parent trip # a) my_reviewer = FactoryFloor.ReviewerFactory(request=trip_request, status=1) trip_request.status = 17 trip_request.save() self.assertTrue(can_modify_request(my_reviewer.user, trip_request.id)) # RULE 3: when a trip is unsubmitted, randos cannot edit self.assertFalse(can_modify_request(reg_user, trip_request.id)) # RULE 4: when a trip is unsubmitted, owners can edit self.assertTrue(can_modify_request(trip_request.created_by, trip_request.id)) # RULE 5: when a trip is unsubmitted, travellers can edit self.assertTrue(can_modify_request(traveller.user, trip_request.id)) # RULE 6: owners are always able to unsubmit a trip trip_request.submitted = timezone.now() trip_request.save() self.assertTrue(can_modify_request(trip_request.created_by, trip_request.id, True)) trip_request.status = 22 trip_request.save() self.assertTrue(can_modify_request(trip_request.created_by, trip_request.id, True))