def test_token_updater(self): """token_updater property should be set to the function passed to its setter""" snow = Snow() snow.init_app(self.app) snow.token_updater = token_updater self.assertEqual(snow.token_updater, token_updater)
def test_oauth_connect(self): """client set in connection context should be an instance of pysnow.OAuthClient""" snow = Snow() snow.init_app(self.app) snow.token_updater = token_updater with self.app.app_context(): client = snow.connection self.assertEqual(type(client), pysnow.OAuthClient)
def test_session_object(self): """passing a session to init_app() should be of the same type as the object passed""" s = Session() snow = Snow() snow.init_app(self.app, session=s) with self.app.app_context(): client = snow.connection self.assertEqual(type(client.session), Session)
def test_client_type(self): """setting SNOW_OAUTH_CLIENT_ID and SNOW_OAUTH_CLIENT_SECRET should set type Snow._client_type_oauth to True""" snow = Snow() snow.init_app(self.app) # oauth should be True self.assertEqual(snow._client_type_oauth, True) # basic should be False self.assertEqual(snow._client_type_basic, False)
def test_params_builder(self): """passing a ParamsBuilder object to init_app() should set `Client` parameters""" pb = pysnow.ParamsBuilder() pb.add_custom({'test': 'test'}) snow = Snow() snow.init_app(self.app, parameters=pb) snow.token_updater = token_updater with self.app.app_context(): client = snow.connection p = client.parameters.as_dict() self.assertEqual('test' in p, True)
def test_set_token(self): """After passing a token to Snow.set_token(), the pysnow.OAuthClient.token should equal the passed token""" snow = Snow(self.app) with self.app.app_context(): snow.connection.set_token(mock_token) self.assertEqual(snow.connection.token, mock_token)
def test_missing_config(self): """flask_snow.Snow should raise ConfigError if a required OAuth setting is missing""" snow = Snow() test1 = test2 = self.app test1.config.pop('SNOW_OAUTH_CLIENT_ID') self.assertRaises(ConfigError, snow.init_app, test1) test2.config.pop('SNOW_OAUTH_CLIENT_SECRET') self.assertRaises(ConfigError, snow.init_app, test2)
from logging.config import dictConfig from flask import Flask, session, abort, jsonify, request from pysnow.exceptions import TokenCreateError from requests.exceptions import HTTPError from flask_snow import Snow app = Flask(__name__) app.config.from_object('settings') # Configure logging, specifically for the pysnow library dictConfig(app.config['LOGGING']) snow = Snow() snow.init_app(app) def token_updater(updated_token): app.logger.info('refreshing token!') session['token'] = updated_token snow.token_updater = token_updater def snow_resource(f): @wraps(f) def inner(*args, **kwargs): if not session.get('token'):
def test_invalid_params(self): """passing a non-ParamsBuilder object to init_app() should raise `InvalidUsage`""" snow = Snow() self.assertRaises(InvalidUsage, snow.init_app, self.app, parameters={'test': 'test'})
def test_init_app(self): snow = Snow() if hasattr(self.app, 'extensions'): del self.app.extensions snow.init_app(self.app)
def test_constructor(self): Snow(self.app)