From: Christopher Allan Webber Date: Thu, 18 Apr 2013 16:15:47 +0000 (-0500) Subject: Moving the rest of the relevant tests to have test_app set up in "def setup()" as... X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=2455a54f721ee89915ad3f8e7c35b0fa828bf3cb;p=mediagoblin.git Moving the rest of the relevant tests to have test_app set up in "def setup()" as well --- diff --git a/mediagoblin/tests/test_http_callback.py b/mediagoblin/tests/test_http_callback.py index e2c85d0d..a0511af7 100644 --- a/mediagoblin/tests/test_http_callback.py +++ b/mediagoblin/tests/test_http_callback.py @@ -16,6 +16,7 @@ import json +import pytest from urlparse import urlparse, parse_qs from mediagoblin import mg_globals @@ -26,21 +27,24 @@ from mediagoblin.tests import test_oauth as oauth class TestHTTPCallback(object): - def _setup(self, test_app): + @pytest.fixture(autouse=True) + def setup(self, test_app): + self.test_app = test_app + self.db = mg_globals.database self.user_password = u'secret' self.user = fixture_add_user(u'call_back', self.user_password) - self.login(test_app) + self.login() - def login(self, testapp): - testapp.post('/auth/login/', { + def login(self): + self.test_app.post('/auth/login/', { 'username': self.user.username, 'password': self.user_password}) - def get_access_token(self, testapp, client_id, client_secret, code): - response = testapp.get('/oauth/access_token', { + def get_access_token(self, client_id, client_secret, code): + response = self.test_app.get('/oauth/access_token', { 'code': code, 'client_id': client_id, 'client_secret': client_secret}) @@ -49,15 +53,12 @@ class TestHTTPCallback(object): return response_data['access_token'] - def test_callback(self, test_app): + def test_callback(self): ''' Test processing HTTP callback ''' - self._setup(test_app) - self.oauth = oauth.TestOAuth() - self.oauth._setup(test_app) + self.oauth.setup(self.test_app) - redirect, client_id = self.oauth.test_4_authorize_confidential_client( - test_app) + redirect, client_id = self.oauth.test_4_authorize_confidential_client() code = parse_qs(urlparse(redirect.location).query)['code'][0] @@ -66,11 +67,11 @@ class TestHTTPCallback(object): client_secret = client.secret - access_token = self.get_access_token(test_app, client_id, client_secret, code) + access_token = self.get_access_token(client_id, client_secret, code) callback_url = 'https://foo.example?secrettestmediagoblinparam' - res = test_app.post('/api/submit?client_id={0}&access_token={1}\ + self.test_app.post('/api/submit?client_id={0}&access_token={1}\ &client_secret={2}'.format( client_id, access_token, diff --git a/mediagoblin/tests/test_oauth.py b/mediagoblin/tests/test_oauth.py index 7ad98459..ea3bd798 100644 --- a/mediagoblin/tests/test_oauth.py +++ b/mediagoblin/tests/test_oauth.py @@ -17,6 +17,7 @@ import json import logging +import pytest from urlparse import parse_qs, urlparse from mediagoblin import mg_globals @@ -28,7 +29,10 @@ _log = logging.getLogger(__name__) class TestOAuth(object): - def _setup(self, test_app): + @pytest.fixture(autouse=True) + def setup(self, test_app): + self.test_app = test_app + self.db = mg_globals.database self.pman = pluginapi.PluginManager() @@ -36,17 +40,17 @@ class TestOAuth(object): self.user_password = u'4cc355_70k3N' self.user = fixture_add_user(u'joauth', self.user_password) - self.login(test_app) + self.login() - def login(self, test_app): - test_app.post( - '/auth/login/', { - 'username': self.user.username, - 'password': self.user_password}) + def login(self): + self.test_app.post( + '/auth/login/', { + 'username': self.user.username, + 'password': self.user_password}) - def register_client(self, test_app, name, client_type, description=None, - redirect_uri=''): - return test_app.post( + def register_client(self, name, client_type, description=None, + redirect_uri=''): + return self.test_app.post( '/oauth/client/register', { 'name': name, 'description': description, @@ -56,12 +60,10 @@ class TestOAuth(object): def get_context(self, template_name): return template.TEMPLATE_TEST_CONTEXT[template_name] - def test_1_public_client_registration_without_redirect_uri(self, test_app): + def test_1_public_client_registration_without_redirect_uri(self): ''' Test 'public' OAuth client registration without any redirect uri ''' - self._setup(test_app) - - response = self.register_client(test_app, u'OMGOMGOMG', 'public', - 'OMGOMG Apache License v2') + response = self.register_client( + u'OMGOMGOMG', 'public', 'OMGOMG Apache License v2') ctx = self.get_context('oauth/client/register.html') @@ -76,12 +78,11 @@ class TestOAuth(object): # Should not pass through assert not client - def test_2_successful_public_client_registration(self, test_app): + def test_2_successful_public_client_registration(self): ''' Successfully register a public client ''' - self._setup(test_app) uri = 'http://foo.example' - self.register_client(test_app, u'OMGOMG', 'public', 'OMG!', - uri) + self.register_client( + u'OMGOMG', 'public', 'OMG!', uri) client = self.db.OAuthClient.query.filter( self.db.OAuthClient.name == u'OMGOMG').first() @@ -92,12 +93,10 @@ class TestOAuth(object): # Client should have been registered assert client - def test_3_successful_confidential_client_reg(self, test_app): + def test_3_successful_confidential_client_reg(self): ''' Register a confidential OAuth client ''' - self._setup(test_app) - response = self.register_client( - test_app, u'GMOGMO', 'confidential', 'NO GMO!') + u'GMOGMO', 'confidential', 'NO GMO!') assert response.status_int == 302 @@ -109,16 +108,14 @@ class TestOAuth(object): return client - def test_4_authorize_confidential_client(self, test_app): + def test_4_authorize_confidential_client(self): ''' Authorize a confidential client as a logged in user ''' - self._setup(test_app) - - client = self.test_3_successful_confidential_client_reg(test_app) + client = self.test_3_successful_confidential_client_reg() client_identifier = client.identifier redirect_uri = 'https://foo.example' - response = test_app.get('/oauth/authorize', { + response = self.test_app.get('/oauth/authorize', { 'client_id': client.identifier, 'scope': 'all', 'redirect_uri': redirect_uri}) @@ -131,7 +128,7 @@ class TestOAuth(object): form = ctx['form'] # Short for client authorization post reponse - capr = test_app.post( + capr = self.test_app.post( '/oauth/client/authorize', { 'client_id': form.client_id.data, 'allow': 'Allow', @@ -149,19 +146,16 @@ class TestOAuth(object): ''' Get the value of ?code= from an URI ''' return parse_qs(urlparse(uri).query)['code'][0] - def test_token_endpoint_successful_confidential_request(self, test_app): + def test_token_endpoint_successful_confidential_request(self): ''' Successful request against token endpoint ''' - self._setup(test_app) - - code_redirect, client_id = self.test_4_authorize_confidential_client( - test_app) + code_redirect, client_id = self.test_4_authorize_confidential_client() code = self.get_code_from_redirect_uri(code_redirect.location) client = self.db.OAuthClient.query.filter( self.db.OAuthClient.identifier == unicode(client_id)).first() - token_res = test_app.get('/oauth/access_token?client_id={0}&\ + token_res = self.test_app.get('/oauth/access_token?client_id={0}&\ code={1}&client_secret={2}'.format(client_id, code, client.secret)) assert token_res.status_int == 200 @@ -180,19 +174,16 @@ code={1}&client_secret={2}'.format(client_id, code, client.secret)) return client_id, token_data - def test_token_endpont_missing_id_confidential_request(self, test_app): + def test_token_endpont_missing_id_confidential_request(self): ''' Unsuccessful request against token endpoint, missing client_id ''' - self._setup(test_app) - - code_redirect, client_id = self.test_4_authorize_confidential_client( - test_app) + code_redirect, client_id = self.test_4_authorize_confidential_client() code = self.get_code_from_redirect_uri(code_redirect.location) client = self.db.OAuthClient.query.filter( self.db.OAuthClient.identifier == unicode(client_id)).first() - token_res = test_app.get('/oauth/access_token?\ + token_res = self.test_app.get('/oauth/access_token?\ code={0}&client_secret={1}'.format(code, client.secret)) assert token_res.status_int == 200 @@ -204,16 +195,16 @@ code={0}&client_secret={1}'.format(code, client.secret)) assert token_data['error'] == 'invalid_request' assert len(token_data['error_description']) - def test_refresh_token(self, test_app): + def test_refresh_token(self): ''' Try to get a new access token using the refresh token ''' # Get an access token and a refresh token client_id, token_data =\ - self.test_token_endpoint_successful_confidential_request(test_app) + self.test_token_endpoint_successful_confidential_request() client = self.db.OAuthClient.query.filter( self.db.OAuthClient.identifier == client_id).first() - token_res = test_app.get('/oauth/access_token', + token_res = self.test_app.get('/oauth/access_token', {'refresh_token': token_data['refresh_token'], 'client_id': client_id, 'client_secret': client.secret