Esempio n. 1
0
 def test_render_email_no_primary_email(self):
     testuser = UserBuilder2(is_superuser=True).user
     builder = self.builderclass.make() \
         .add_admins(UserBuilder2(shortname='test').user)
     selector = self.mock_http200_getrequest_htmls(role=builder.get_object(),
                                                   user=testuser)
     self.assertFalse(selector.exists('.devilry-admin-adminlist-email')),
Esempio n. 2
0
 def test_render_user_with_fullname(self):
     testuser = UserBuilder2(is_superuser=True).user
     builder = self.builderclass.make() \
         .add_admins(UserBuilder2(shortname='test', fullname='Test User').user)
     selector = self.mock_http200_getrequest_htmls(role=builder.get_object(),
                                                   user=testuser)
     self.assertEqual(['Test User(test)'], self.__get_names(selector))
Esempio n. 3
0
 def test_remove_shown_other_than_requesting_user(self):
     testuser = UserBuilder2().user
     builder = self.builderclass.make() \
         .add_admins(testuser, UserBuilder2(shortname='other').user)
     selector = self.mock_http200_getrequest_htmls(role=builder.get_object(),
                                                   user=testuser)
     self.assertEqual(1, selector.count(
         '#objecttableview-table tbody .devilry-admin-adminlist-remove-button'))
Esempio n. 4
0
 def test_render_only_users_from_current_basenode(self):
     testuser = UserBuilder2(is_superuser=True).user
     self.builderclass.make() \
         .add_admins(UserBuilder2(shortname='otherbasenodeuser').user)
     builder = self.builderclass.make() \
         .add_admins(UserBuilder2(shortname='expecteduser').user)
     selector = self.mock_http200_getrequest_htmls(role=builder.get_object(),
                                                   user=testuser)
     self.assertEqual(['expecteduser'], self.__get_names(selector))
Esempio n. 5
0
 def test_ordering(self):
     testuser = UserBuilder2(is_superuser=True).user
     builder = self.builderclass.make() \
         .add_admins(UserBuilder2(shortname='userb').user,
                     UserBuilder2(shortname='usera').user,
                     UserBuilder2(shortname='userc').user)
     selector = self.mock_http200_getrequest_htmls(role=builder.get_object(),
                                                   user=testuser)
     self.assertEqual(['usera', 'userb', 'userc'], self.__get_shortnames(selector))
Esempio n. 6
0
 def test_adds_user_to_admins(self):
     requestuser = UserBuilder2().user
     janedoe = UserBuilder2().user
     builder = self.builderclass.make() \
         .add_admins(requestuser)
     self.assertFalse(builder.get_object().admins.filter(pk=janedoe.pk).exists())
     self.__mock_postrequest(role=builder.get_object(),
                             requestuser=requestuser,
                             data={'user': janedoe.id})
     self.assertTrue(builder.get_object().admins.filter(pk=janedoe.pk).exists())
Esempio n. 7
0
 def test_render_email_has_primary_email(self):
     testuser = UserBuilder2(is_superuser=True).user
     builder = self.builderclass.make() \
         .add_admins(UserBuilder2(shortname='test').add_primary_email('*****@*****.**').user)
     selector = self.mock_http200_getrequest_htmls(role=builder.get_object(),
                                                   user=testuser)
     self.assertEqual(selector.one('.devilry-admin-adminlist-email').alltext_normalized,
                      'Contact at [email protected]')
     self.assertEqual(selector.one('.devilry-admin-adminlist-email')['href'],
                      'mailto:[email protected]')
Esempio n. 8
0
 def test_success_redirect_without_next(self):
     requestuser = UserBuilder2().user
     janedoe = UserBuilder2(fullname='Jane Doe').user
     builder = self.builderclass.make(short_name='testbasenode') \
         .add_admins(requestuser)
     response, request = self.__mock_postrequest(role=builder.get_object(),
                                                 requestuser=requestuser,
                                                 data={'user': janedoe.id})
     self.assertEqual(response.status_code, 302)
     request.cradmin_app.reverse_appindexurl.assert_called_once()
Esempio n. 9
0
 def test_success_redirect_with_next(self):
     requestuser = UserBuilder2().user
     janedoe = UserBuilder2(fullname='Jane Doe').user
     builder = self.builderclass.make(short_name='testbasenode') \
         .add_admins(requestuser)
     response, request = self.__mock_postrequest(role=builder.get_object(),
                                                 requestuser=requestuser,
                                                 data={'user': janedoe.id,
                                                       'next': '/next'})
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response['location'], '/next')
Esempio n. 10
0
 def test_success_message(self):
     requestuser = UserBuilder2().user
     janedoe = UserBuilder2(fullname='Jane Doe').user
     builder = self.builderclass.make(short_name='testbasenode') \
         .add_admins(requestuser)
     response, request = self.__mock_postrequest(role=builder.get_object(),
                                                 requestuser=requestuser,
                                                 data={'user': janedoe.id})
     request._messages.add.assert_called_once_with(
         messages.SUCCESS,
         'Jane Doe added as administrator for {}.'.format(builder.get_object()),
         '')
Esempio n. 11
0
 def test_render(self):
     testuser = UserBuilder2().user
     builder = self.builderclass.make() \
         .add_admins(testuser)  # testuser should be excluded since it is already admin
     UserBuilder2(shortname='Jane Doe')
     selector = self.mock_http200_getrequest_htmls(role=builder.get_object(),
                                                   user=testuser)
     self.assertTrue(selector.exists(
         '#objecttableview-table tbody .devilry-admin-userselect-select-button'))
     self.assertEqual(
         selector.one('#objecttableview-table tbody '
                      '.devilry-admin-userselect-select-button').alltext_normalized,
         'Add as administrator')
Esempio n. 12
0
 def test_get(self):
     requestuser = UserBuilder2().user
     janedoe = UserBuilder2(fullname='Jane Doe').user
     builder = self.builderclass.make(short_name='testbasenode') \
         .add_admins(requestuser, janedoe)
     selector = self.__mock_http200_getrequest_htmls(role=builder.get_object(),
                                                     requestuser=requestuser,
                                                     user_to_remove=janedoe)
     self.assertEqual(selector.one('title').alltext_normalized,
                      'Remove Jane Doe')
     self.assertEqual(selector.one('#deleteview-preview').alltext_normalized,
                      'Are you sure you want to remove Jane Doe '
                      'as administrator for {}?'.format(builder.get_object()))
Esempio n. 13
0
 def test_no_admins_messages(self):
     testuser = UserBuilder2(is_superuser=True).user
     builder = self.builderclass.make()
     selector = self.mock_http200_getrequest_htmls(role=builder.get_object(),
                                                   user=testuser)
     self.assertEqual(selector.one('#objecttableview-no-items-message').alltext_normalized,
                      'There is no administrators registered for {}.'.format(
                          builder.get_object().get_path()))
Esempio n. 14
0
 def test_post_remove_yourself_404(self):
     requestuser = UserBuilder2().user
     builder = self.builderclass.make() \
         .add_admins(requestuser)
     with self.assertRaises(Http404):
         self.__mock_postrequest(role=builder.get_object(),
                                 requestuser=requestuser,
                                 user_to_remove=requestuser)
Esempio n. 15
0
 def test_remove_shown_for_requesting_user_if_superuser(self):
     testuser = UserBuilder2(is_superuser=True).user
     builder = self.builderclass.make() \
         .add_admins(testuser)
     selector = self.mock_http200_getrequest_htmls(role=builder.get_object(),
                                                   user=testuser)
     self.assertTrue(selector.exists(
         '#objecttableview-table tbody .devilry-admin-adminlist-remove-button'))
Esempio n. 16
0
 def test_title(self):
     testuser = UserBuilder2().user
     subjectbuilder = self.builderclass.make(long_name='The Long Name') \
         .add_admins(testuser)
     selector = self.mock_http200_getrequest_htmls(role=subjectbuilder.get_object(),
                                                   user=testuser)
     self.assertEqual(selector.one('title').alltext_normalized,
                      'Administrators for The Long Name')
Esempio n. 17
0
 def test_post_remove_ok(self):
     requestuser = UserBuilder2().user
     janedoe = UserBuilder2(fullname='Jane Doe').user
     builder = self.builderclass.make(short_name='testbasenode') \
         .add_admins(requestuser, janedoe)
     messagesmock = mock.MagicMock()
     response = self.__mock_postrequest(role=builder.get_object(),
                                        requestuser=requestuser,
                                        user_to_remove=janedoe,
                                        messagesmock=messagesmock)
     self.assertEqual(response.status_code, 302)
     messagesmock.add.assert_called_once_with(
         messages.SUCCESS,
         'Jane Doe is no longer administrator for {}.'.format(builder.get_object()),
         '')
     self.assertTrue(get_user_model().objects.filter(pk=janedoe.pk).exists())
     self.assertFalse(builder.get_object().admins.filter(pk=janedoe.pk).exists())
Esempio n. 18
0
 def test_post_remove_yourself_superuser_ok(self):
     requestuser = UserBuilder2(is_superuser=True).user
     builder = self.builderclass.make() \
         .add_admins(requestuser)
     response = self.__mock_postrequest(role=builder.get_object(),
                                        requestuser=requestuser,
                                        user_to_remove=requestuser)
     self.assertEqual(response.status_code, 302)
     self.assertTrue(get_user_model().objects.filter(pk=requestuser.pk).exists())
     self.assertFalse(builder.get_object().admins.filter(pk=requestuser.pk).exists())
Esempio n. 19
0
 def test_invalid_user(self):
     requestuser = UserBuilder2().user
     builder = self.builderclass.make(short_name='testbasenode') \
         .add_admins(requestuser)
     response, request = self.__mock_postrequest(role=builder.get_object(),
                                                 requestuser=requestuser,
                                                 data={'user': 10000000001})
     self.assertEqual(response.status_code, 302)
     request._messages.add.assert_called_once_with(
         messages.ERROR,
         'Error: The user may not exist, or it may already be administrator.', '')
     request.cradmin_app.reverse_appindexurl.assert_called_once()
Esempio n. 20
0
    def test_bulk_create_from_usernames_exclude_existing(self):
        testperiod = mommy.make('core.Period')
        mommy.make('core.RelatedStudent',
                   period=testperiod,
                   user=UserBuilder2().add_usernames('testuser1').user)
        with self.settings(DJANGO_CRADMIN_USE_EMAIL_AUTH_BACKEND=False):
            result = RelatedStudent.objects.bulk_create_from_usernames(
                period=testperiod, usernames=['testuser1', 'testuser2'])

            self.assertEqual(2, RelatedStudent.objects.count())
            self.assertEqual(1, result.created_relatedusers_queryset.count())
            self.assertEqual(
                'testuser2',
                result.created_relatedusers_queryset.first().user.shortname)
            self.assertEqual({'testuser1'},
                             result.existing_relateduser_usernames_set)
Esempio n. 21
0
    def test_bulk_create_from_emails_exclude_existing(self):
        testperiod = mommy.make('core.Period')
        mommy.make(
            'core.RelatedExaminer',
            period=testperiod,
            user=UserBuilder2().add_emails('*****@*****.**').user)
        with self.settings(DJANGO_CRADMIN_USE_EMAIL_AUTH_BACKEND=True):
            result = RelatedExaminer.objects.bulk_create_from_emails(
                period=testperiod,
                emails=['*****@*****.**', '*****@*****.**'])

            self.assertEqual(2, RelatedExaminer.objects.count())
            self.assertEqual(1, result.created_relatedusers_queryset.count())
            self.assertEqual(
                '*****@*****.**',
                result.created_relatedusers_queryset.first().user.shortname)
            self.assertEqual({'*****@*****.**'},
                             result.existing_relateduser_emails_set)
Esempio n. 22
0
    def test_bulk_create_from_usernames_exclude_existing_in_other_period(self):
        testperiod = mommy.make('core.Period')
        otherperiod = mommy.make('core.Period')
        mommy.make('core.RelatedStudent',
                   period=otherperiod,
                   user=UserBuilder2(
                       shortname='testuser1').add_usernames('testuser1').user)
        with self.settings(DJANGO_CRADMIN_USE_EMAIL_AUTH_BACKEND=False):
            result = RelatedStudent.objects.bulk_create_from_usernames(
                period=testperiod, usernames=['testuser1', 'testuser2'])

            self.assertEqual(3, RelatedStudent.objects.count())
            self.assertEqual(2, result.created_relatedusers_queryset.count())
            self.assertEqual({'testuser1', 'testuser2'}, {
                relatedexaminer.user.shortname
                for relatedexaminer in
                result.created_relatedusers_queryset.all()
            })
            self.assertEqual(set(), result.existing_relateduser_usernames_set)