class ReviewRequestReviewGroupsChoiceTests(TestCase): """Unit tests for ReviewRequestReviewGroupsChoice.""" fixtures = ['test_users'] def setUp(self): super(ReviewRequestReviewGroupsChoiceTests, self).setUp() self.request = RequestFactory().request() self.request.user = User.objects.create(username='******') self.choice = ReviewRequestReviewGroupsChoice(request=self.request) def test_get_queryset(self): """Testing ReviewGroupsChoice.get_queryset""" group1 = self.create_review_group(name='group1') group2 = self.create_review_group(name='group2') self.assertQuerysetEqual(self.choice.get_queryset(), [group1.pk, group2.pk], transform=lambda group: group.pk) def test_get_queryset_with_local_site(self): """Testing ReviewGroupsChoice.get_queryset with LocalSite""" good_site = LocalSite.objects.create(name='good-site') bad_site = LocalSite.objects.create(name='bad-site') # These should match. group1 = self.create_review_group(name='group1', local_site=good_site) group2 = self.create_review_group(name='group2', local_site=good_site) # These should not match. self.create_review_group(name='group3') self.create_review_group(name='group4', local_site=bad_site) self.choice.extra_state['local_site'] = good_site self.assertQuerysetEqual(self.choice.get_queryset(), [group1.pk, group2.pk], transform=lambda group: group.pk) def test_matches_with_any_op(self): """Testing ReviewRequestReviewGroupsChoice.matches with "any" operator """ group = self.create_review_group(name='group1') condition_set = ConditionSet(ConditionSet.MODE_ALL, [ Condition(self.choice, self.choice.get_operator('any')), ]) review_request = self.create_review_request() review_request.target_groups = [group] self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [] self.assertFalse(condition_set.matches(review_request=review_request)) def test_matches_with_none_op(self): """Testing ReviewRequestReviewGroupsChoice.matches with "none" operator """ group = self.create_review_group(name='group1') condition_set = ConditionSet(ConditionSet.MODE_ALL, [ Condition(self.choice, self.choice.get_operator('none')), ]) review_request = self.create_review_request() self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [group] self.assertFalse(condition_set.matches(review_request=review_request)) def test_matches_with_contains_any_op(self): """Testing ReviewRequestReviewGroupsChoice.matches with "contains-any" operator """ group1 = self.create_review_group(name='group1') group2 = self.create_review_group(name='group2') group3 = self.create_review_group(name='group2') condition_set = ConditionSet(ConditionSet.MODE_ALL, [ Condition(self.choice, self.choice.get_operator('contains-any'), [group1, group2]), ]) review_request = self.create_review_request() review_request.target_groups = [group2] self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [group3] self.assertFalse(condition_set.matches(review_request=review_request)) review_request.target_groups = [] self.assertFalse(condition_set.matches(review_request=review_request)) def test_matches_with_does_not_contain_any_op(self): """Testing ReviewRequestReviewGroupsChoice.matches with "does-not-contain-any" operator """ group1 = self.create_review_group(name='group1') group2 = self.create_review_group(name='group2') group3 = self.create_review_group(name='group3') condition_set = ConditionSet(ConditionSet.MODE_ALL, [ Condition(self.choice, self.choice.get_operator('does-not-contain-any'), [group1, group2]) ]) review_request = self.create_review_request() self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [group3] self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [group1] self.assertFalse(condition_set.matches(review_request=review_request)) def test_matches_with_any_public_op(self): """Testing ReviewRequestReviewGroupsChoice.matches with "any-public" operator""" group1 = self.create_review_group(name='group1', invite_only=False) group2 = self.create_review_group(name='group2', invite_only=True) condition_set = ConditionSet(ConditionSet.MODE_ALL, [ Condition(self.choice, self.choice.get_operator('any-public')), ]) review_request = self.create_review_request() review_request.target_groups = [group1] self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [group2] self.assertFalse(condition_set.matches(review_request=review_request)) review_request.target_groups = [] self.assertFalse(condition_set.matches(review_request=review_request)) def test_matches_with_all_invite_only_op(self): """Testing ReviewRequestReviewGroupsChoice.matches with "all-invite-only" operator """ group1 = self.create_review_group(name='group1', invite_only=True) group2 = self.create_review_group(name='group2', invite_only=False) condition_set = ConditionSet(ConditionSet.MODE_ALL, [ Condition(self.choice, self.choice.get_operator('all-invite-only')), ]) review_request = self.create_review_request() review_request.target_groups = [group1] self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [group2] self.assertFalse(condition_set.matches(review_request=review_request)) review_request.target_groups = [] self.assertFalse(condition_set.matches(review_request=review_request))
class ReviewRequestReviewGroupsChoiceTests(TestCase): """Unit tests for ReviewRequestReviewGroupsChoice.""" fixtures = ['test_users'] def setUp(self): super(ReviewRequestReviewGroupsChoiceTests, self).setUp() self.choice = ReviewRequestReviewGroupsChoice() def test_get_queryset(self): """Testing ReviewGroupsChoice.get_queryset""" group1 = self.create_review_group(name='group1') group2 = self.create_review_group(name='group2') self.assertQuerysetEqual( self.choice.get_queryset(), [group1.pk, group2.pk], transform=lambda group: group.pk) def test_get_queryset_with_local_site(self): """Testing ReviewGroupsChoice.get_queryset with LocalSite""" good_site = LocalSite.objects.create(name='good-site') bad_site = LocalSite.objects.create(name='bad-site') # These should match. group1 = self.create_review_group(name='group1', local_site=good_site) group2 = self.create_review_group(name='group2', local_site=good_site) # These should not match. self.create_review_group(name='group3') self.create_review_group(name='group4', local_site=bad_site) self.choice.extra_state['local_site'] = good_site self.assertQuerysetEqual( self.choice.get_queryset(), [group1.pk, group2.pk], transform=lambda group: group.pk) def test_matches_with_any_op(self): """Testing ReviewRequestReviewGroupsChoice.matches with "any" operator """ group = self.create_review_group(name='group1') condition_set = ConditionSet(ConditionSet.MODE_ALL, [ Condition(self.choice, self.choice.get_operator('any')), ]) review_request = self.create_review_request() review_request.target_groups = [group] self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [] self.assertFalse(condition_set.matches(review_request=review_request)) def test_matches_with_none_op(self): """Testing ReviewRequestReviewGroupsChoice.matches with "none" operator """ group = self.create_review_group(name='group1') condition_set = ConditionSet(ConditionSet.MODE_ALL, [ Condition(self.choice, self.choice.get_operator('none')), ]) review_request = self.create_review_request() self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [group] self.assertFalse(condition_set.matches(review_request=review_request)) def test_matches_with_contains_any_op(self): """Testing ReviewRequestReviewGroupsChoice.matches with "contains-any" operator """ group1 = self.create_review_group(name='group1') group2 = self.create_review_group(name='group2') group3 = self.create_review_group(name='group2') condition_set = ConditionSet(ConditionSet.MODE_ALL, [ Condition(self.choice, self.choice.get_operator('contains-any'), [group1, group2]), ]) review_request = self.create_review_request() review_request.target_groups = [group2] self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [group3] self.assertFalse(condition_set.matches(review_request=review_request)) review_request.target_groups = [] self.assertFalse(condition_set.matches(review_request=review_request)) def test_matches_with_does_not_contain_any_op(self): """Testing ReviewRequestReviewGroupsChoice.matches with "does-not-contain-any" operator """ group1 = self.create_review_group(name='group1') group2 = self.create_review_group(name='group2') group3 = self.create_review_group(name='group3') condition_set = ConditionSet(ConditionSet.MODE_ALL, [ Condition(self.choice, self.choice.get_operator('does-not-contain-any'), [group1, group2]) ]) review_request = self.create_review_request() self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [group3] self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [group1] self.assertFalse(condition_set.matches(review_request=review_request)) def test_matches_with_any_public_op(self): """Testing ReviewRequestReviewGroupsChoice.matches with "any-public" operator""" group1 = self.create_review_group(name='group1', invite_only=False) group2 = self.create_review_group(name='group2', invite_only=True) condition_set = ConditionSet(ConditionSet.MODE_ALL, [ Condition(self.choice, self.choice.get_operator('any-public')), ]) review_request = self.create_review_request() review_request.target_groups = [group1] self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [group2] self.assertFalse(condition_set.matches(review_request=review_request)) review_request.target_groups = [] self.assertFalse(condition_set.matches(review_request=review_request)) def test_matches_with_all_invite_only_op(self): """Testing ReviewRequestReviewGroupsChoice.matches with "all-invite-only" operator """ group1 = self.create_review_group(name='group1', invite_only=True) group2 = self.create_review_group(name='group2', invite_only=False) condition_set = ConditionSet(ConditionSet.MODE_ALL, [ Condition(self.choice, self.choice.get_operator('all-invite-only')), ]) review_request = self.create_review_request() review_request.target_groups = [group1] self.assertTrue(condition_set.matches(review_request=review_request)) review_request.target_groups = [group2] self.assertFalse(condition_set.matches(review_request=review_request)) review_request.target_groups = [] self.assertFalse(condition_set.matches(review_request=review_request))