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())
def testInvalidSig(self): now = datetime(2011, 1, 1, 1, 12, 00, 100000) request = self.request.copy() request.GET = { USER_KEY: 'test-user', DATETIME_KEY: datetime(2011, 1, 1, 1, 12, 00, 100000).isoformat(), SIG_KEY: 11213123123, } request.user = self.user logout(request) login_request = LoginRequestClient(request, now, KEY) self.assertEqual(login_request.verify(), False)
def process_request(self, request): login_request = LoginRequestClient(request) redirect = login_request.verify() if redirect: return redirect