Exemplo n.º 1
0
    def testValidSig(self):
        # Construct login request server side
        domain = 'http://testserver/'
        settings.AUTOLOGIN_SERVICES = {'test': domain}
        now = datetime(2011, 1, 1, 1, 12, 00, 100000)
        request_server = LoginRequestServer(self.user.username, 'test', now,
                                            KEY)
        redirect = request_server.generate_redirect()
        querystring = urlparse.urlsplit(redirect['location']).query  # pylint: disable=E1103

        # Verify login request client side
        query = QueryDict(querystring)
        request = self.request.copy()
        request.GET = {
            USER_KEY: query.get(USER_KEY),
            DATETIME_KEY: query.get(DATETIME_KEY),
            SIG_KEY: query.get(SIG_KEY),
        }
        request.user = self.user
        session = MagicMock()
        session.flush = lambda: None
        request.session = session
        logout(request)
        self.assertFalse(request.user.is_authenticated())
        login_request = LoginRequestClient(request, now, KEY)
        redirect = login_request.verify()

        # Assert
        self.assertTrue(isinstance(redirect, HttpResponseRedirect))
        self.assertEqual(redirect['location'], settings.LOGIN_REDIRECT_URL)
        self.assertTrue(request.user.is_authenticated())
Exemplo n.º 2
0
    def testValidSig(self):
        # Construct login request server side
        domain = 'http://testserver/'
        settings.AUTOLOGIN_SERVICES = {'test': domain}
        now = datetime(2011, 1, 1, 1, 12, 00, 100000)
        request_server = LoginRequestServer(self.user.username, 'test', now, KEY)
        redirect = request_server.generate_redirect()
        querystring = urlparse.urlsplit(redirect['location']).query  # pylint: disable=E1103

        # Verify login request client side
        query = QueryDict(querystring)
        request = self.request.copy()
        request.GET = {
            USER_KEY: query.get(USER_KEY),
            DATETIME_KEY: query.get(DATETIME_KEY),
            SIG_KEY: query.get(SIG_KEY),
        }
        request.user = self.user
        session = MagicMock()
        session.flush = lambda: None
        request.session = session
        logout(request)
        self.assertFalse(request.user.is_authenticated())
        login_request = LoginRequestClient(request, now, KEY)
        redirect = login_request.verify()

        # Assert
        self.assertTrue(isinstance(redirect, HttpResponseRedirect))
        self.assertEqual(redirect['location'], settings.LOGIN_REDIRECT_URL)
        self.assertTrue(request.user.is_authenticated())
Exemplo n.º 3
0
 def get(self, request, service, *args, **kwargs):
     request_server = LoginRequestServer(request.user.username, service)
     return request_server.generate_redirect()