def test_with_deanship_reviewer(self): add_d_review = Permission.objects.get(codename="add_deanship_review") self.user.user_permissions.add(add_d_review) # Test with pending activity response = self.client.get(reverse('activities:show', args=(self.activity1.pk, ))) self.assertEqual(response.status_code, 403) # Test with activity approved by presidency add_presidency_review(self.activity1, True) response = self.client.get(reverse('activities:show', args=(self.activity1.pk, ))) self.assertEqual(response.status_code, 200) self.assertContains(response, self.activity1.name) # sanity check # Test with rejected activity add_deanship_review(self.activity1, False) response = self.client.get(reverse('activities:show', args=(self.activity1.pk, ))) self.assertEqual(response.status_code, 200) self.assertContains(response, self.activity1.name) # sanity check # Test with approved activity add_presidency_review(self.activity2, True) add_deanship_review(self.activity2, True) response = self.client.get(reverse('activities:show', args=(self.activity2.pk, ))) self.assertEqual(response.status_code, 200) self.assertContains(response, self.activity2.name) # sanity check
def test_show_view_with_a_normal_user(self): """ Test the show activity view with a user with no permissions. """ # Setup the database normal_user = create_user('normal_user') club = create_club() activity = create_activity(submitter=normal_user, club=club) add_presidency_review(activity, True) add_deanship_review(activity, True) # Login logged_in = self.client.login(username=normal_user.username, password='******') self.assertEqual(logged_in, True) # Go to the view response = self.client.get(reverse('activities:show', args=(activity.pk, ))) self.assertEqual(response.status_code, 200) self.assertContains(response, activity.name) self.assertContains(response, activity.primary_club.name) # self.assertContains(response, activity.description) # Normal user should not see activity status self.assertNotContains(response, 'tooltip-primary') # Normal user should not see edit button self.assertNotContains(response, 'href="' + reverse('activities:edit', args=(activity.pk, )) + '"' ) # Normal user should not see review buttons self.assertNotContains(response, u'مراجعة رئاسة نادي الطلاب') self.assertNotContains(response, u'مراجعة عمادة شؤون الطلاب')
def test_with_normal_user(self): # Test with pending activity response = self.client.get( reverse('activities:show', args=(self.activity1.pk, ))) self.assertEqual(response.status_code, 403) # Test with activity approved by presidency add_presidency_review(self.activity1, True) response = self.client.get( reverse('activities:show', args=(self.activity1.pk, ))) self.assertEqual(response.status_code, 403) # Test with rejected activity add_deanship_review(self.activity1, False) response = self.client.get( reverse('activities:show', args=(self.activity1.pk, ))) self.assertEqual(response.status_code, 403) # Test with approved activity add_presidency_review(self.activity2, True) add_deanship_review(self.activity2, True) response = self.client.get( reverse('activities:show', args=(self.activity2.pk, ))) self.assertEqual(response.status_code, 200) self.assertContains(response, self.activity2.name) # sanity check
def test_with_deanship_reviewer(self): add_d_review = Permission.objects.get(codename="add_deanship_review") self.user.user_permissions.add(add_d_review) # Test with pending activity response = self.client.get( reverse('activities:show', args=(self.activity1.pk, ))) self.assertEqual(response.status_code, 403) # Test with activity approved by presidency add_presidency_review(self.activity1, True) response = self.client.get( reverse('activities:show', args=(self.activity1.pk, ))) self.assertEqual(response.status_code, 200) self.assertContains(response, self.activity1.name) # sanity check # Test with rejected activity add_deanship_review(self.activity1, False) response = self.client.get( reverse('activities:show', args=(self.activity1.pk, ))) self.assertEqual(response.status_code, 200) self.assertContains(response, self.activity1.name) # sanity check # Test with approved activity add_presidency_review(self.activity2, True) add_deanship_review(self.activity2, True) response = self.client.get( reverse('activities:show', args=(self.activity2.pk, ))) self.assertEqual(response.status_code, 200) self.assertContains(response, self.activity2.name) # sanity check
def test_show_view_with_a_normal_user(self): """ Test the show activity view with a user with no permissions. """ # Setup the database normal_user = create_user('normal_user') club = create_club() activity = create_activity(submitter=normal_user, club=club) add_presidency_review(activity, True) add_deanship_review(activity, True) # Login logged_in = self.client.login(username=normal_user.username, password='******') self.assertEqual(logged_in, True) # Go to the view response = self.client.get( reverse('activities:show', args=(activity.pk, ))) self.assertEqual(response.status_code, 200) self.assertContains(response, activity.name) self.assertContains(response, activity.primary_club.name) # self.assertContains(response, activity.description) # Normal user should not see activity status self.assertNotContains(response, 'tooltip-primary') # Normal user should not see edit button self.assertNotContains( response, 'href="' + reverse('activities:edit', args=(activity.pk, )) + '"') # Normal user should not see review buttons self.assertNotContains(response, u'مراجعة رئاسة نادي الطلاب') self.assertNotContains(response, u'مراجعة عمادة شؤون الطلاب')
def test_list_view_with_employee(self): """ Test that an employee will have two tables: (1) all approved activities (including their clubs') (2) their clubs' approved activities """ self.employee = create_user() self.club2.employee = self.employee self.club2.save() self.another_approved_activity = add_deanship_review(add_presidency_review(create_activity(club=self.club2), True), True) self.client.login(username=self.employee.username, password="******") response = self.client.get(reverse('activities:list')) self.assertEqual(response.status_code, 200) self.assertNotIn(self.activity_nn, response.context['pending']) self.assertNotIn(self.activity_pn, response.context['pending']) self.assertNotIn(self.activity_rn, response.context['rejected']) self.assertNotIn(self.activity_an, response.context['pending']) self.assertNotIn(self.activity_ap, response.context['pending']) self.assertNotIn(self.activity_ar, response.context['rejected']) self.assertIn(self.activity_aa, response.context['approved']) self.assertIn(self.another_approved_activity, response.context['approved']) self.assertNotIn(self.activity_aa, response.context['club_approved']) self.assertIn(self.another_approved_activity, response.context['club_approved'])
def test_list_view_with_employee(self): """ Test that an employee will have two tables: (1) all approved activities (including their clubs') (2) their clubs' approved activities """ self.employee = create_user() self.club2.employee = self.employee self.club2.save() self.another_approved_activity = add_deanship_review( add_presidency_review(create_activity(club=self.club2), True), True) self.client.login(username=self.employee.username, password="******") response = self.client.get(reverse('activities:list')) self.assertEqual(response.status_code, 200) self.assertNotIn(self.activity_nn, response.context['pending']) self.assertNotIn(self.activity_pn, response.context['pending']) self.assertNotIn(self.activity_rn, response.context['rejected']) self.assertNotIn(self.activity_an, response.context['pending']) self.assertNotIn(self.activity_ap, response.context['pending']) self.assertNotIn(self.activity_ar, response.context['rejected']) self.assertIn(self.activity_aa, response.context['approved']) self.assertIn(self.another_approved_activity, response.context['approved']) self.assertNotIn(self.activity_aa, response.context['club_approved']) self.assertIn(self.another_approved_activity, response.context['club_approved'])
def util_no_restriction_users(self): # Test with pending activity response = self.client.get(reverse('activities:show', args=(self.activity1.pk, ))) self.assertEqual(response.status_code, 200) self.assertContains(response, self.activity1.name) # sanity check # Test with rejected activity add_presidency_review(self.activity1, False) response = self.client.get(reverse('activities:show', args=(self.activity1.pk, ))) self.assertEqual(response.status_code, 200) self.assertContains(response, self.activity1.name) # sanity check # Test with approved activity add_presidency_review(self.activity2, True) add_deanship_review(self.activity2, True) response = self.client.get(reverse('activities:show', args=(self.activity2.pk, ))) self.assertEqual(response.status_code, 200) self.assertContains(response, self.activity2.name) # sanity check
def setUp(self): self.presidency = create_club(english_name="Presidency") self.media_center = create_club(english_name="Media Center") self.club = create_club() self.club2 = create_club() self.user = create_user(username="******") self.client.login(username=self.user.username, password="******") # The following activities represent the 7 common patterns for activities in terms of their approval status. # The naming of the following activities follows this pattern: activity_[P][D], # where [P] represents the status of the activity's presidency review # and [D] represents the status of the activity's DSA review. # The possible statuses are n (nonexistent), p (pending), r (rejected), and a (approved). self.activity_nn = create_activity(club=self.club) # no review self.activity_pn = add_presidency_review( create_activity(club=self.club2), None) # and add reviews # p: pending, n: none self.activity_rn = add_presidency_review( create_activity(club=self.club2), False) self.activity_an = add_presidency_review( create_activity(club=self.club), True) self.activity_ap = add_deanship_review( add_presidency_review(create_activity(club=self.club), True), None) self.activity_ar = add_deanship_review( add_presidency_review(create_activity(club=self.club), True), False) self.activity_aa = add_deanship_review( add_presidency_review(create_activity(club=self.club), True), True)
def setUp(self): self.presidency = create_club(english_name="Presidency") self.media_center = create_club(english_name="Media Center") self.club = create_club() self.club2 = create_club() self.user = create_user(username="******") self.client.login(username=self.user.username, password="******") # The following activities represent the 7 common patterns for activities in terms of their approval status. # The naming of the following activities follows this pattern: activity_[P][D], # where [P] represents the status of the activity's presidency review # and [D] represents the status of the activity's DSA review. # The possible statuses are n (nonexistent), p (pending), r (rejected), and a (approved). self.activity_nn = create_activity(club=self.club) # no review self.activity_pn = add_presidency_review(create_activity(club=self.club2), None) # and add reviews # p: pending, n: none self.activity_rn = add_presidency_review(create_activity(club=self.club2), False) self.activity_an = add_presidency_review(create_activity(club=self.club), True) self.activity_ap = add_deanship_review(add_presidency_review(create_activity(club=self.club), True), None) self.activity_ar = add_deanship_review(add_presidency_review(create_activity(club=self.club), True), False) self.activity_aa = add_deanship_review(add_presidency_review(create_activity(club=self.club), True), True)