def setUp(self): super(TestOpenIDLogin, self).setUp() # Use StubOpenIDProvider and _identity_url as our fixed SSO so that # we always get a successful OpenID response for _identity_url. self.provider = StubOpenIDProvider('http://example.com/') setDefaultFetcher(self.provider, wrap_exceptions=False) self.missing_sso_server_url = object() self.orig_sso_server_url = getattr(settings, 'OPENID_SSO_SERVER_URL', self.missing_sso_server_url) settings.OPENID_SSO_SERVER_URL = self._identity_url self.client = TestClient()
def setUp(self): super(TestOpenIDLogin, self).setUp() # Use StubOpenIDProvider and _identity_url as our fixed SSO so that # we always get a successful OpenID response for _identity_url. self.provider = StubOpenIDProvider('http://example.com/') setDefaultFetcher(self.provider, wrap_exceptions=False) self.missing_sso_server_url = object() self.orig_sso_server_url = getattr( settings, 'OPENID_SSO_SERVER_URL', self.missing_sso_server_url) settings.OPENID_SSO_SERVER_URL = self._identity_url self.client = TestClient()
class TestOpenIDLogin(TestCase): urls = tuple(django_openid_auth.tests.urls.urlpatterns + lava_server.urls.urlpatterns) _username = '******' _identity_url = 'http://example.com/identity' def test_positive_response_from_provider(self): self.create_user() openid_request = self.initiate_login() # Simulate a positive assertion from the server. openid_response = openid_request.answer(True) # Use that response to complete the authentication. response = self.complete(openid_response) # And the user is now logged in. response = self.client.get('/getuser/') self.assertEquals(response.content, self._username) def test_negative_response_from_provider(self): openid_request = self.initiate_login() # Simulate a negative assertion from the server. openid_response = openid_request.answer(False) # Use that response to complete the authentication. response = self.complete(openid_response) # Since we got a negative assertion from the server, no user is logged # in. response = self.client.get('/getuser/') self.assertEquals(response.content, '') def setUp(self): super(TestOpenIDLogin, self).setUp() # Use StubOpenIDProvider and _identity_url as our fixed SSO so that # we always get a successful OpenID response for _identity_url. self.provider = StubOpenIDProvider('http://example.com/') setDefaultFetcher(self.provider, wrap_exceptions=False) self.missing_sso_server_url = object() self.orig_sso_server_url = getattr(settings, 'OPENID_SSO_SERVER_URL', self.missing_sso_server_url) settings.OPENID_SSO_SERVER_URL = self._identity_url self.client = TestClient() def tearDown(self): super(TestOpenIDLogin, self).tearDown() setDefaultFetcher(None) if self.orig_sso_server_url == self.missing_sso_server_url: del settings.OPENID_SSO_SERVER_URL else: settings.OPENID_SSO_SERVER_URL = self.orig_sso_server_url def create_user(self): user = User(username=self._username) user.save() # Associate our newly created user with the identity URL. useropenid = UserOpenID(user=user, claimed_id=self._identity_url, display_id=self._identity_url) useropenid.save() def initiate_login(self): response = self.client.get('/openid/login/') self.assertEqual(httplib.OK, response.status_code) openid_request = self.provider.parseFormPost(response.content) self.assertTrue( openid_request.return_to.startswith( 'http://testserver/openid/complete/')) return openid_request def complete(self, openid_response): """Complete an OpenID authentication request.""" webresponse = self.provider.server.encodeResponse(openid_response) self.assertEquals(webresponse.code, 302) redirect_to = webresponse.headers['location'] self.assertTrue( redirect_to.startswith('http://testserver/openid/complete/')) return self.client.get( '/openid/complete/', dict(cgi.parse_qsl(redirect_to.split('?', 1)[1])))
class TestOpenIDLogin(TestCase): urls = tuple( django_openid_auth.tests.urls.urlpatterns + lava_server.urls.urlpatterns) _username = '******' _identity_url = 'http://example.com/identity' def test_positive_response_from_provider(self): self.create_user() openid_request = self.initiate_login() # Simulate a positive assertion from the server. openid_response = openid_request.answer(True) # Use that response to complete the authentication. response = self.complete(openid_response) # And the user is now logged in. response = self.client.get('/getuser/') self.assertEquals(response.content, self._username) def test_negative_response_from_provider(self): openid_request = self.initiate_login() # Simulate a negative assertion from the server. openid_response = openid_request.answer(False) # Use that response to complete the authentication. response = self.complete(openid_response) # Since we got a negative assertion from the server, no user is logged # in. response = self.client.get('/getuser/') self.assertEquals(response.content, '') def setUp(self): super(TestOpenIDLogin, self).setUp() # Use StubOpenIDProvider and _identity_url as our fixed SSO so that # we always get a successful OpenID response for _identity_url. self.provider = StubOpenIDProvider('http://example.com/') setDefaultFetcher(self.provider, wrap_exceptions=False) self.missing_sso_server_url = object() self.orig_sso_server_url = getattr( settings, 'OPENID_SSO_SERVER_URL', self.missing_sso_server_url) settings.OPENID_SSO_SERVER_URL = self._identity_url self.client = TestClient() def tearDown(self): super(TestOpenIDLogin, self).tearDown() setDefaultFetcher(None) if self.orig_sso_server_url == self.missing_sso_server_url: del settings.OPENID_SSO_SERVER_URL else: settings.OPENID_SSO_SERVER_URL = self.orig_sso_server_url def create_user(self): user = User(username=self._username) user.save() # Associate our newly created user with the identity URL. useropenid = UserOpenID( user=user, claimed_id=self._identity_url, display_id=self._identity_url) useropenid.save() def initiate_login(self): response = self.client.get('/openid/login/') self.assertEqual(httplib.OK, response.status_code) openid_request = self.provider.parseFormPost(response.content) self.assertTrue(openid_request.return_to.startswith( 'http://testserver/openid/complete/')) return openid_request def complete(self, openid_response): """Complete an OpenID authentication request.""" webresponse = self.provider.server.encodeResponse(openid_response) self.assertEquals(webresponse.code, 302) redirect_to = webresponse.headers['location'] self.assertTrue(redirect_to.startswith( 'http://testserver/openid/complete/')) return self.client.get('/openid/complete/', dict(cgi.parse_qsl(redirect_to.split('?', 1)[1])))