def setUp(self): """ Setup GAE testbed. """ self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_memcache_stub() self.testbed.init_datastore_v3_stub() self.testbed.init_urlfetch_stub() linker.app.config['TESTING'] = True self.app = linker.app.test_client() self.provider_configs = { 'qbo': ProviderConfig(id="qbo", provider="qbo", app_family="local_host_family", client_id="coopers_pale_ale", client_secret="ninja_300").put(), 'xerov2': ProviderConfig(id='xerov2', provider="xerov2", app_family="local_host_family", client_id="test", client_secret="fyre", additional_auth_attributes=json.dumps( {'application_type': 'public'})).put(), 'zuora': ProviderConfig(id='zuora', provider='zuora', app_family='local_host_family').put() }
def setUp(self): """ Setup GAE testbed. """ self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_memcache_stub() self.testbed.init_datastore_v3_stub() self.testbed.init_urlfetch_stub() self.test_provider_config = ProviderConfig( id="qbo", provider="qbo", app_family="local_host_family", client_id="coopers_pale_ale", client_secret="ninja_300").put()
def connect(provider, org_uid): """ The first endpoint to be invoked by a client wishing to connect a new data source. Redirects the client to the data provider authorisation and sets relevant org statuses. The client can pass in a redirect URL to which the user should be redirected to after the second step of the auth flow (this url is stored in datastore and used in the second step, ie. oauth function). Args: provider(str): the data provider to which org_uid should be connected to org_uid(str): org/connection identifier Returns: (str, int): redirect to data provider """ logging.info("initiating connect for {} (provider {})".format( org_uid, provider)) if provider in API_PROVIDERS: app_family = request.args.get('app_family') if not app_family: return 'No app family specified', 422 provider_config = ProviderConfig.find(provider, app_family) if not provider_config: return 'No configuration found for provider {} and app family {}'.format( provider, app_family), 422 session = client_factory.get_authorization_session( provider, org_uid, provider_config, request.args.get('redirect_url')) if request.data: data = json.loads(request.data) username = data.get('username') password = data.get('password') # No redirect to login page needed if username and password are supplied in body return basic_auth(provider, org_uid, username, password) else: return redirect(session.get_authorization_url()) if provider in MANUAL_PROVIDERS: create_manual_provider_org(org_uid, provider) return '', 204 logging.info("invalid provider '{}' for org '{}'".format( provider, org_uid)) return '', 404
def setUp(self): """ Setup GAE testbed. """ self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_memcache_stub() self.testbed.init_datastore_v3_stub() self.testbed.init_urlfetch_stub() self.test_provider_config = ProviderConfig( id='xerov2', provider="xerov2", app_family="local_host_family", client_id="test", client_secret="fyre", additional_auth_attributes=json.dumps({'application_type': 'public'}) ).put() adapter.app.config['TESTING'] = True self.app = adapter.app.test_client()
def setUp(self): """ Setup GAE testbed. """ self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_memcache_stub() self.testbed.init_datastore_v3_stub() self.testbed.init_urlfetch_stub() root_path = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) self.testbed.init_taskqueue_stub(root_path=root_path + '/..') self.taskqueue = self.testbed.get_stub(testbed.TASKQUEUE_SERVICE_NAME) self.provider_configs = { 'qbo': ProviderConfig(id='qbo', provider='qbo', app_family='local_host_family', client_id='coopers_pale_ale', client_secret='ninja_300').put() } adapter.app.config['TESTING'] = True self.app = adapter.app.test_client()
def warmup(): # Load datastore with provider configs if running locally if not os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'): if not ProviderConfig.get_by_id('qbo'): logging.info('Creating provider config for qbo') ProviderConfig( id='qbo', provider='qbo', app_family='local_host_family', client_id=os.environ.get('QBO_CLIENT_ID'), client_secret=os.environ.get('QBO_CLIENT_SECRET') ).put() if not ProviderConfig.get_by_id('xerov2'): logging.info('Creating provider config for xero') ProviderConfig( id='xerov2', provider='xerov2', app_family='local_host_family', client_id=os.environ.get('XERO_CONSUMER_KEY'), client_secret=os.environ.get('XERO_CONSUMER_SECRET'), additional_auth_attributes=json.dumps({'application_type': 'public'}) ).put() if not ProviderConfig.get_by_id('zuora'): logging.info('Creating provider config for zuora') ProviderConfig( id='zuora', provider='zuora', app_family='local_host_family', ).put() return '', 204