def test_print_warning_on_http_redirect_uri(self, print_func, prompt_func, session_constructor, client): AUTH_URL = 'https://auth.url.com' redirect_url = 'http://redirect.url.com' session = MagicMock() session_constructor.return_value = session session.create_authorization_url.return_value = AUTH_URL, None session.fetch_token.return_value = self.token client.return_value = 'returned client' prompt_func.return_value = 'http://redirect.url.com/?data' self.assertEqual( 'returned client', auth.client_from_manual_flow(API_KEY, redirect_url, self.json_path)) with open(self.json_path, 'r') as f: self.assertEqual( { 'creation_timestamp': MOCK_NOW, 'token': self.token, }, json.load(f)) print_func.assert_any_call( AnyStringWith('will transmit data over HTTP'))
def test_custom_token_write_func(self, prompt_func, session_constructor, client): AUTH_URL = 'https://auth.url.com' session = MagicMock() session_constructor.return_value = session session.create_authorization_url.return_value = AUTH_URL, None session.fetch_token.return_value = self.token webdriver = MagicMock() webdriver.current_url = REDIRECT_URL + '/token_params' client.return_value = 'returned client' prompt_func.return_value = 'http://redirect.url.com/?data' token_writes = [] def dummy_token_write_func(token): token_writes.append(token) self.assertEqual('returned client', auth.client_from_manual_flow( API_KEY, REDIRECT_URL, self.json_path, token_write_func=dummy_token_write_func)) session_constructor.assert_called_with( _, token=_, auto_refresh_url=_, auto_refresh_kwargs=_, update_token=_) self.assertEqual([{ 'creation_timestamp': MOCK_NOW, 'token': self.token }], token_writes)
def test_custom_token_write_func(self, input_func, session_constructor, client): AUTH_URL = 'https://auth.url.com' session = MagicMock() session_constructor.return_value = session session.create_authorization_url.return_value = AUTH_URL, None session.fetch_token.return_value = self.token webdriver = MagicMock() webdriver.current_url = REDIRECT_URL + '/token_params' client.return_value = 'returned client' input_func.return_value = 'http://redirect.url.com/?data' def dummy_token_write_func(*args, **kwargs): pass self.assertEqual( 'returned client', auth.client_from_manual_flow( API_KEY, REDIRECT_URL, self.json_path, token_write_func=dummy_token_write_func)) session_constructor.assert_called_with( _, token=_, auto_refresh_url=_, auto_refresh_kwargs=_, update_token=dummy_token_write_func)
def get_client(api_key, redirect_uri, token_path, asyncio=False): if os.path.isfile(token_path): LOG.info("Returning client loaded from token file '%s'", token_path) return auth.client_from_token_file(token_path, api_key, asyncio=asyncio) return auth.client_from_manual_flow(api_key, redirect_uri, token_path, asyncio=asyncio)
def test_no_token_file(self, input_func, session_constructor, client): AUTH_URL = 'https://auth.url.com' session = MagicMock() session_constructor.return_value = session session.create_authorization_url.return_value = AUTH_URL, None session.fetch_token.return_value = self.token client.return_value = 'returned client' input_func.return_value = 'http://redirect.url.com/?data' self.assertEqual( 'returned client', auth.client_from_manual_flow(API_KEY, REDIRECT_URL, self.json_path)) with open(self.json_path, 'r') as f: self.assertEqual(self.token, json.load(f))
def test_normalize_api_key(self, prompt_func, async_session, sync_session, client): AUTH_URL = 'https://auth.url.com' sync_session.return_value = sync_session sync_session.create_authorization_url.return_value = AUTH_URL, None sync_session.fetch_token.return_value = self.token webdriver = MagicMock() webdriver.current_url = REDIRECT_URL + '/token_params' client.return_value = 'returned client' prompt_func.return_value = 'http://redirect.url.com/?data' self.assertEqual( 'returned client', auth.client_from_manual_flow('API_KEY', REDIRECT_URL, self.json_path)) self.assertEqual('*****@*****.**', sync_session.call_args[0][0])
def test_enforce_enums_enabled(self, prompt_func, async_session, sync_session, client): AUTH_URL = 'https://auth.url.com' sync_session.return_value = sync_session sync_session.create_authorization_url.return_value = AUTH_URL, None sync_session.fetch_token.return_value = self.token client.return_value = 'returned client' prompt_func.return_value = 'http://redirect.url.com/?data' self.assertEqual( 'returned client', auth.client_from_manual_flow(API_KEY, REDIRECT_URL, self.json_path)) client.assert_called_once_with(API_KEY, _, token_metadata=_, enforce_enums=True)
def test_no_token_file(self, prompt_func, async_session, sync_session, client): AUTH_URL = 'https://auth.url.com' sync_session.return_value = sync_session sync_session.create_authorization_url.return_value = AUTH_URL, None sync_session.fetch_token.return_value = self.token client.return_value = 'returned client' prompt_func.return_value = 'http://redirect.url.com/?data' self.assertEqual( 'returned client', auth.client_from_manual_flow(API_KEY, REDIRECT_URL, self.json_path)) with open(self.json_path, 'r') as f: self.assertEqual( { 'creation_timestamp': MOCK_NOW, 'token': self.token, }, json.load(f))