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 get(self, request, service, *args, **kwargs): request_server = LoginRequestServer(request.user.username, service) return request_server.generate_redirect()