def test_removing_reviewers_can_end_reviewers_step(self): """Remove all reviewers, and the review goes up to leader step.""" self.rev.reviewers.add(self.user4) self.rev.start_review() leader_review = self.rev.get_review(self.user2) self.assertEqual(leader_review.status, 'pending') # Count Review objects qs = Review.objects \ .filter(document=self.rev.document) \ .filter(revision=self.rev.revision) \ .filter(role='reviewer') self.assertEqual(qs.count(), 2) # Remove one reviewer self.data.update({'reviewers': str(self.user.id)}) form = ContractorDeliverableRevisionForm( self.data, instance=self.rev, category=self.category) self.assertTrue(form.is_valid()) form.save() # Assert the reviewers step is still open self.rev.refresh_from_db() self.assertIsNone(self.rev.reviewers_step_closed) self.assertEqual(qs.count(), 1) # Remove second reviewer self.data.update({'reviewers': ''}) form = ContractorDeliverableRevisionForm( self.data, instance=self.rev, category=self.category) self.assertTrue(form.is_valid()) form.save() # Assert the reviewers step is closed self.rev.refresh_from_db() self.assertEqual(qs.count(), 0) self.assertIsNotNone(self.rev.reviewers_step_closed) leader_review.refresh_from_db() self.assertEqual(leader_review.status, 'progress')
def test_reviewer_can_be_added_during_reviewers_step(self): self.rev.start_review() # Count initial Reviews qs = Review.objects \ .filter(document=self.rev.document) \ .filter(revision=self.rev.revision) \ .filter(role='reviewer') self.assertEqual(qs.count(), 1) # Add a reviewer reviewers = '{},{}'.format(self.user.id, self.user4.id) self.data.update({'reviewers': reviewers}) form = ContractorDeliverableRevisionForm(self.data, instance=self.rev, category=self.category) self.assertTrue(form.is_valid()) form.save() # Count updated Reviews self.assertEqual(qs.count(), 2)
def test_reviewer_can_be_added_during_reviewers_step(self): self.rev.start_review() # Count initial Reviews qs = Review.objects \ .filter(document=self.rev.document) \ .filter(revision=self.rev.revision) \ .filter(role='reviewer') self.assertEqual(qs.count(), 1) # Add a reviewer reviewers = '{},{}'.format(self.user.id, self.user4.id) self.data.update({'reviewers': reviewers}) form = ContractorDeliverableRevisionForm( self.data, instance=self.rev, category=self.category) self.assertTrue(form.is_valid()) form.save() # Count updated Reviews self.assertEqual(qs.count(), 2)
def test_reviewer_may_be_deleted_during_reviewers_step(self): """A reviewer can be deleted if they didn't submit a review yet.""" self.rev.start_review() # Count initial Reviews qs = Review.objects \ .filter(document=self.rev.document) \ .filter(revision=self.rev.revision) \ .filter(role='reviewer') self.assertEqual(qs.count(), 1) # Remove a reviewer reviewers = '' self.data.update({'reviewers': reviewers}) form = ContractorDeliverableRevisionForm(self.data, instance=self.rev, category=self.category) self.assertTrue(form.is_valid()) form.save() # Count updated Reviews self.assertEqual(qs.count(), 0)
def test_reviewer_may_be_deleted_during_reviewers_step(self): """A reviewer can be deleted if they didn't submit a review yet.""" self.rev.start_review() # Count initial Reviews qs = Review.objects \ .filter(document=self.rev.document) \ .filter(revision=self.rev.revision) \ .filter(role='reviewer') self.assertEqual(qs.count(), 1) # Remove a reviewer reviewers = '' self.data.update({'reviewers': reviewers}) form = ContractorDeliverableRevisionForm( self.data, instance=self.rev, category=self.category) self.assertTrue(form.is_valid()) form.save() # Count updated Reviews self.assertEqual(qs.count(), 0)
def test_removing_approver_before_approver_step_doesnt_end_review(self): self.rev.start_review() self.assertIsNone(self.rev.review_end_date) self.data.update({'approver': ''}) form = ContractorDeliverableRevisionForm(self.data, instance=self.rev, category=self.category) rev = form.save() review = rev.get_review(self.user3) self.assertIsNone(review) self.assertIsNone(self.rev.review_end_date)
def test_removing_approver_before_approver_step_doesnt_end_review(self): self.rev.start_review() self.assertIsNone(self.rev.review_end_date) self.data.update({'approver': ''}) form = ContractorDeliverableRevisionForm( self.data, instance=self.rev, category=self.category) rev = form.save() review = rev.get_review(self.user3) self.assertIsNone(review) self.assertIsNone(self.rev.review_end_date)
def test_update_approver_updates_distrib_list(self): self.rev.start_review() review = self.rev.get_review(self.user3) self.assertEqual(review.role, 'approver') self.data.update({'approver': self.user4.id}) form = ContractorDeliverableRevisionForm(self.data, instance=self.rev, category=self.category) rev = form.save() review = rev.get_review(self.user3) self.assertIsNone(review) review = rev.get_review(self.user4) self.assertEqual(review.role, 'approver')
def test_update_approver_updates_distrib_list(self): self.rev.start_review() review = self.rev.get_review(self.user3) self.assertEqual(review.role, 'approver') self.data.update({'approver': self.user4.id}) form = ContractorDeliverableRevisionForm( self.data, instance=self.rev, category=self.category) rev = form.save() review = rev.get_review(self.user3) self.assertIsNone(review) review = rev.get_review(self.user4) self.assertEqual(review.role, 'approver')