Esempio n. 1
0
    def __init__(self,
                 user=None,
                 session_id=None,
                 has_otp=False,
                 has_sudo=False):
        super(MockRequest, self).__init__()
        self.method = "GET"

        if user is None:
            self.user = AnonymousUser()
        else:
            self.user = user

        session = SessionMiddleware()
        self.session = session.SessionStore(session_id)
        self._messages = SessionStorage(self)
        self.META = {"REMOTE_ADDR": "127.0.0.1"}

        # sudo
        ElevateMiddleware(lambda x: x)(self)
        if has_sudo:
            grant_sudo(self)

        # otp
        if has_otp:
            grant_otp(self, self.user)
        OTPMiddleware(lambda x: x)(self)
Esempio n. 2
0
    def test_should_handle_unknown_errors(self):
        responses.add(
            responses.POST,
            "https://fake-cas.qed.ai/api/universal_ids/",
            json={
                'errors': [
                    dict(
                        error_code='fake_unknown_error',
                        error_message='Fake unknown error.',
                    )
                ]
            },
            status=606,
        )
        request = RequestFactory().get('/')
        request.session = {}
        request._messages = SessionStorage(request)
        request.user = User(is_superuser=True)
        User.objects.create_user("blah", "*****@*****.**")
        queryset = User.objects.all()
        admin = CasAwareUserAdmin(User, admin_site)
        admin.enable_cas_login(request, queryset)

        msg, = get_messages(request)
        self.assertEqual(msg.message, 'Fake unknown error.')
        self.assertEqual(msg.level, messages.ERROR)
Esempio n. 3
0
    def test_should_truncate_error_messages_if_there_are_too_many(self):
        responses.add(
            responses.POST,
            "https://fake-cas.qed.ai/api/universal_ids/",
            json={
                'errors': [
                    dict(
                        error_code='no_such_user',
                        error_message='User with given email was not found.',
                        email='*****@*****.**',
                    ) for i in range(0, 100)
                ]
            },
            status=404,
        )
        request = RequestFactory().get('/')
        request.session = {}
        request._messages = SessionStorage(request)
        request.user = User(is_superuser=True)
        User.objects.create_user("blah", "*****@*****.**")
        queryset = User.objects.all()
        admin = CasAwareUserAdmin(User, admin_site)
        admin.enable_cas_login(request, queryset)

        msgs = list(get_messages(request))
        self.assertTrue(len(msgs) < 30)
        self.assertEqual(
            msgs[0].message,
            '[email protected] - User with given email was not found.')
        self.assertEqual(msgs[0].level, messages.ERROR)
        self.assertEqual(msgs[-1].message,
                         '%d other errors occurred' % (100 - len(msgs) + 1))
        self.assertEqual(msgs[-1].level, messages.ERROR)
Esempio n. 4
0
    def test_should_show_error_message_if_user_does_not_exist_in_cas(self):
        responses.add(
            responses.POST,
            "https://fake-cas.qed.ai/api/universal_ids/",
            json={
                'errors': [
                    dict(
                        error_code='no_such_user',
                        error_message='User with given email was not found.',
                        email='*****@*****.**',
                    )
                ]
            },
            status=404,
        )
        request = RequestFactory().get('/')
        request.session = {}
        request.user = User(is_superuser=True)
        request._messages = SessionStorage(request)
        User.objects.create_user("blah", "*****@*****.**")
        queryset = User.objects.all()
        admin = CasAwareUserAdmin(User, admin_site)
        admin.enable_cas_login(request, queryset)

        msg, = get_messages(request)
        self.assertEqual(
            msg.message,
            '[email protected] - User with given email was not found.')
        self.assertEqual(msg.level, messages.ERROR)
Esempio n. 5
0
def get_request():
    request = RequestFactory().request()
    request.session = {}
    request._messages = SessionStorage(request)
    return request
Esempio n. 6
0
 def setUp(self):
     super(MessageTest, self).setUp()
     self.request.session = {}
     self._old_LEVEL_TAGS = messages_base.LEVEL_TAGS
     messages_base.LEVEL_TAGS = DEFAULT_TAGS
     self.request._messages = SessionStorage(self.request)