Example #1
0
 def setUp(self):
     super().setUp()
     self.instance0 = FactoryFloor.TripFactory()
     self.instance1 = FactoryFloor.TripFactory()
     self.instance2 = FactoryFloor.TripFactory(lead=RegionFactory())
     self.instance3 = FactoryFloor.TripFactory(
         is_adm_approval_required=True)
     self.test_url0 = reverse_lazy('travel:trip_delete',
                                   kwargs={
                                       "pk": self.instance0.pk,
                                       "type": "adm-hit-list"
                                   })
     self.test_url1 = reverse_lazy('travel:trip_delete',
                                   kwargs={
                                       "pk": self.instance1.pk,
                                       "type": "region-1"
                                   })
     self.test_url2 = reverse_lazy('travel:trip_delete',
                                   kwargs={
                                       "pk": self.instance2.pk,
                                       "type": "back_to_verify"
                                   })
     self.test_url3 = reverse_lazy('travel:trip_delete',
                                   kwargs={
                                       "pk": self.instance3.pk,
                                       "type": "all"
                                   })
     self.expected_template = 'travel/confirm_delete.html'
Example #2
0
    def test_start_trip_review_process(self):
        trip = FactoryFloor.TripFactory(status=41)
        for i in range(0, 5):
            # add a status date just to make sure it is removed
            FactoryFloor.TripReviewerFactory(trip=trip, status=23, status_date=timezone.now(), comments="123")
        for r in trip.reviewers.all():
            self.assertEqual(r.status, 23)
            self.assertIsNotNone(r.status_date)
        utils.start_trip_review_process(trip, False)
        self.assertEqual(trip.status, 31)
        for r in trip.reviewers.all():
            self.assertEqual(r.status, 24)
            self.assertIsNone(r.status_date)

        # do it again but with rest=True
        trip = FactoryFloor.TripFactory(status=41)
        for i in range(0, 5):
            # add a status date just to make sure it is removed
            FactoryFloor.TripReviewerFactory(trip=trip, status=23, status_date=timezone.now(), comments="123")
        for r in trip.reviewers.all():
            self.assertEqual(r.status, 23)
            self.assertIsNotNone(r.status_date)
        utils.start_trip_review_process(trip, True)
        self.assertEqual(trip.status, 41)
        for r in trip.reviewers.all():
            self.assertEqual(r.status, 24)
            self.assertIsNotNone(r.status_date)
Example #3
0
 def setUp(self):
     super().setUp()
     self.instance1 = FactoryFloor.TripFactory(is_adm_approval_required=True)
     self.instance2 = FactoryFloor.TripFactory(is_adm_approval_required=False)
     self.test_url1 = reverse_lazy('travel:trip_verify', args=[self.instance1.pk])
     self.test_url2 = reverse_lazy('travel:trip_verify', args=[self.instance2.pk])
     self.expected_template = 'travel/trip_verification_form.html'
     self.regional_admin_user = self.get_and_login_user(in_group="travel_admin")
     self.ncr_admin_user = self.get_and_login_user(in_group="travel_adm_admin")
Example #4
0
 def setUp(self):
     super().setUp()
     self.instance1 = FactoryFloor.TripFactory(
         is_adm_approval_required=True)
     self.instance2 = FactoryFloor.TripFactory(
         is_adm_approval_required=False)
     self.test_url1 = reverse_lazy('travel:trip_delete',
                                   args=[self.instance1.pk])
     self.test_url2 = reverse_lazy('travel:trip_delete',
                                   args=[self.instance2.pk])
     self.expected_template = 'travel/confirm_delete.html'
     self.regional_admin_user = self.get_and_login_regional_admin()
     self.ncr_admin_user = self.get_and_login_admin()
Example #5
0
    def test_trip_review_process(self):
        activate('en')

        # actors
        trip = FactoryFloor.TripFactory(status_id=41)  # unreviewed, verified
        reviewer1 = FactoryFloor.TripReviewerFactory(trip=trip, order=1)
        reviewer2 = FactoryFloor.TripReviewerFactory(trip=trip, order=2)
        reviewer3 = FactoryFloor.TripReviewerFactory(trip=trip, order=3)

        self.assertIsNone(trip.review_start_date)
        utils.start_trip_review_process(trip)
        self.assertEqual(trip.status_id, 31)
        self.assertIsNotNone(trip.review_start_date)
        for reviewer in trip.reviewers.all():
            self.assertEqual(reviewer.status_id, 24)
            self.assertIsNone(reviewer.status_date)

        # now let's end the review process
        utils.end_trip_review_process(trip)
        self.assertEqual(trip.status_id, 41)
        # the timestamp should not be undone
        self.assertIsNotNone(trip.review_start_date)
        for reviewer in trip.reviewers.all():
            self.assertEqual(reviewer.status_id, 23)
            self.assertIsNone(reviewer.status_date)
Example #6
0
 def setUp(self):
     super().setUp()
     self.instance = FactoryFloor.TripFactory()
     self.test_url = reverse_lazy('travel:trip_detail',
                                  args=[self.instance.pk])
     self.expected_template = 'travel/trip_detail.html'
     self.user = self.get_and_login_user()
Example #7
0
 def setUp(self):
     super().setUp()
     self.instance = FactoryFloor.TripFactory()
     self.test_url1 = reverse_lazy('travel:trip_new', args=[])
     self.test_url2 = reverse_lazy('travel:trip_new', args=[]) + "?pop=true"
     self.expected_template = 'travel/trip_form.html'
     self.user = self.get_and_login_user()
Example #8
0
 def setUp(self):
     super().setUp()
     self.instance = FactoryFloor.TripFactory()
     self.user = self.get_and_login_user(in_group="travel_adm_admin")
     self.test_url = reverse_lazy('travel:trip_review_toggle',
                                  kwargs={"pk": self.instance.pk})
     self.expected_template = 'travel/trip_review_process_form.html'
Example #9
0
 def setUp(self):
     super().setUp()
     self.trip_request = FactoryFloor.TripRequestFactory()
     self.trip = FactoryFloor.TripFactory()
     self.test_url1 = reverse_lazy('travel:export_cfts_list', args=[])
     self.test_url2 = reverse_lazy('travel:export_cfts_request', args=[self.trip_request.id])
     self.test_url3 = reverse_lazy('travel:export_cfts_trip', args=[self.trip.id])
     self.user = self.get_and_login_user(in_group="travel_admin")
Example #10
0
 def setUp(self):
     super().setUp()
     self.instance1 = FactoryFloor.TripFactory(
         is_adm_approval_required=True)
     self.test_url1 = reverse_lazy('travel:trip_review_toggle',
                                   args=[self.instance1.pk])
     self.expected_template = 'travel/form.html'
     self.ncr_admin_user = self.get_and_login_admin()
Example #11
0
 def setUp(self):
     super().setUp()
     self.test_url2 = reverse_lazy('travel:trip_list', kwargs={"type": "upcoming"})  # should be accessible by anyone
     self.test_url3 = reverse_lazy('travel:trip_list', kwargs={"type": "adm-hit-list"})
     self.test_url1 = reverse_lazy('travel:trip_list', kwargs={"type": "all"})
     self.expected_template = 'travel/trip_list.html'
     self.admin_user = self.get_and_login_user(in_group="travel_admin")
     # in order for this to work, we have to make sure there is a trip obj in the db
     FactoryFloor.TripFactory()
Example #12
0
    def test_view(self):
        self.assert_not_broken(self.test_url)
        self.assert_non_public_view(test_url=self.test_url,
                                    expected_template=self.expected_template,
                                    user=self.user)

        # if there is an inappropriate trip, we should get 302 response
        reviewed_trip = FactoryFloor.TripFactory(status_id=32)
        cancelled_trip = FactoryFloor.TripFactory(status_id=43)
        self.test_url1 = reverse_lazy('travel:trip_review_toggle',
                                      kwargs={"pk": reviewed_trip.pk})
        self.test_url2 = reverse_lazy('travel:trip_review_toggle',
                                      kwargs={"pk": cancelled_trip.pk})
        self.assert_non_public_view(test_url=self.test_url1,
                                    expected_code=302,
                                    user=self.user)
        self.assert_non_public_view(test_url=self.test_url2,
                                    expected_code=302,
                                    user=self.user)
Example #13
0
 def setUp(self):
     super().setUp()
     self.instance = FactoryFloor.TripFactory()
     self.test_url = reverse_lazy('travel:trip_verify',
                                  kwargs={
                                      "pk": self.instance.pk,
                                      "region": 0,
                                      "adm": 0
                                  })
     self.expected_template = 'travel/trip_verification_form.html'
     self.admin_user = self.get_and_login_user(in_group="travel_admin")
Example #14
0
 def setUp(self):
     super().setUp()
     self.instance = FactoryFloor.TripFactory()
     self.test_url0 = reverse_lazy('travel:trip_detail',
                                   kwargs={
                                       "pk": self.instance.pk,
                                       "type": "upcoming"
                                   })
     self.test_url1 = reverse_lazy('travel:trip_detail',
                                   kwargs={
                                       "pk": self.instance.pk,
                                       "type": "region-1"
                                   })
     self.expected_template = 'travel/trip_detail.html'
Example #15
0
 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())
Example #16
0
 def test_get_trip_reviewers(self):
     # create your cast of people
     ncr_coord2, created = models.DefaultReviewer.objects.get_or_create(user=UserFactory(), special_role=3, order=2)
     ncr_coord1, created = models.DefaultReviewer.objects.get_or_create(user=UserFactory(), special_role=3, order=1)
     adm_recommender, created = models.DefaultReviewer.objects.get_or_create(user=UserFactory(), special_role=4)
     adm, created = models.DefaultReviewer.objects.get_or_create(user=UserFactory(), special_role=5)
     trip = FactoryFloor.TripFactory(status=41, is_adm_approval_required=True)
     self.assertEqual(trip.reviewers.count(), 0)
     utils.get_trip_reviewers(trip)
     supposed_reviewer_list = [
         ncr_coord1.user,
         ncr_coord2.user,
         adm_recommender.user,
         adm.user,
     ]
     actual_reviewer_list = [r.user for r in trip.reviewers.all()]
     self.assertEqual(supposed_reviewer_list, actual_reviewer_list)
Example #17
0
 def setUp(self):
     super().setUp()
     self.instance = FactoryFloor.TripFactory()
     self.test_url0 = reverse_lazy('travel:trip_edit',
                                   kwargs={
                                       "pk": self.instance.pk,
                                       "type": "upcoming"
                                   })
     self.test_url1 = reverse_lazy('travel:trip_edit',
                                   kwargs={
                                       "pk": self.instance.pk,
                                       "type": "pop"
                                   })
     self.test_url2 = reverse_lazy('travel:trip_edit',
                                   kwargs={
                                       "pk": self.instance.pk,
                                       "type": "region-1"
                                   })
     self.expected_template = 'travel/trip_form.html'
     self.expected_template1 = 'travel/trip_form_popout.html'
     self.admin_user = self.get_and_login_user(in_group="travel_admin")
Example #18
0
 def setUp(self):
     super().setUp()
     for i in range(0, 10):
         FactoryFloor.TripFactory()
     self.test_url1 = reverse_lazy('travel:export_trip_list', args=[])
     self.user = self.get_and_login_user(in_group="travel_admin")
Example #19
0
 def test_is_trip_approver(self):
     user = self.get_and_login_user()
     trip = FactoryFloor.TripFactory(status=31)
     self.assertFalse(utils.is_trip_approver(user, trip))
     FactoryFloor.TripReviewerFactory(user=user, trip=trip, status=25)
     self.assertTrue(utils.is_trip_approver(user, trip))
Example #20
0
 def setUp(self):
     super().setUp()
     for i in range(0, 10):
         FactoryFloor.TripFactory()
     self.test_url1 = reverse_lazy('travel:export_upcoming_trips', args=[])
     self.user = self.get_and_login_regional_admin()