Exemple #1
0
    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'))
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
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)
Exemple #5
0
    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))
Exemple #6
0
    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])
Exemple #7
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)
Exemple #8
0
    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))