Ejemplo n.º 1
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)
Ejemplo n.º 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)
Ejemplo n.º 3
0
 def test_get_related_trip_reviewers(self):
     # scenario 1 --> they are the active reviewer
     user = UserFactory()
     reviewer = FactoryFloor.TripReviewerFactory(user=user, status=23)  # start in draft
     self.assertIsNone(reviewer.trip.current_reviewer)
     reviewer.status = 25
     reviewer.save()
     self.assertEqual(reviewer.trip.current_reviewer, reviewer)
     self.assertIn(reviewer, utils.get_related_trip_reviewers(user))
Ejemplo n.º 4
0
    def test_submit(self):
        # create a few reviewers so that it does not go straight to "reviewed" status
        FactoryFloor.TripReviewerFactory(trip=self.instance)
        FactoryFloor.TripReviewerFactory(trip=self.instance)
        FactoryFloor.TripReviewerFactory(trip=self.instance)
        # ensure we are starting off with what we expect: no submission dates
        self.assertIsNone(self.instance.review_start_date)
        self.assert_success_url(self.test_url, user=self.user)

        # after submitting the form, there should now be a review start date and the status should be updated
        self.instance = models.Conference.objects.get(pk=self.instance.pk)

        self.assertIsNotNone(self.instance.review_start_date)
        self.assertEqual(self.instance.status_id, 31)
        # run it a second time and now it should be unsubmitted, but the original submission date should still be there
        # the trick here is to ensure there is a reviewer on the request.
        self.assert_success_url(self.test_url, user=self.user)
        self.instance = models.Conference.objects.get(pk=self.instance.pk)
        self.assertIsNotNone(self.instance.review_start_date)
        self.assertEqual(self.instance.status_id, 41)
Ejemplo n.º 5
0
 def setUp(self):
     super().setUp()
     self.user = self.get_and_login_user(in_group="travel_adm_admin")
     self.reviewer = FactoryFloor.TripReviewerFactory(user=self.user)
     self.trip = self.reviewer.trip
     # the trip must be submitted for review
     self.start_review_url = reverse_lazy('travel:trip_review_toggle',
                                          kwargs={"pk": self.trip.pk})
     activate('en')
     # if a user is provided in the arg, log in with that user
     response = self.client.post(self.start_review_url)
     self.test_url = reverse_lazy('travel:trip_reviewer_update',
                                  kwargs={"pk": self.reviewer.pk})
     self.expected_template = 'travel/trip_reviewer_approval_form.html'
Ejemplo n.º 6
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))