コード例 #1
0
def test_new_token_with_non_oauth_error(
        db, patch_access_token_getter, account_with_multiple_auth_creds):
    account = account_with_multiple_auth_creds
    refresh_token1 = account.auth_credentials[0].refresh_token
    refresh_token2 = account.auth_credentials[1].refresh_token
    g_token_manager.clear_cache(account)

    assert account.new_token(GOOGLE_EMAIL_SCOPE).value == ACCESS_TOKEN

    patch_access_token_getter.revoke_refresh_token(refresh_token1)
    patch_access_token_getter.force_connection_errors(refresh_token2)

    with pytest.raises(ConnectionError):
        g_token_manager.get_token(account, GOOGLE_EMAIL_SCOPE)
    db.session.refresh(account)
    assert len(account.valid_auth_credentials) == 1
コード例 #2
0
def test_new_token_with_non_oauth_error(
        db, patch_access_token_getter, account_with_multiple_auth_creds):
    account = account_with_multiple_auth_creds
    refresh_token1 = account.auth_credentials[0].refresh_token
    refresh_token2 = account.auth_credentials[1].refresh_token
    g_token_manager.clear_cache(account)

    assert account.new_token(GOOGLE_EMAIL_SCOPE).value == ACCESS_TOKEN

    patch_access_token_getter.revoke_refresh_token(refresh_token1)
    patch_access_token_getter.force_connection_errors(refresh_token2)

    with pytest.raises(ConnectionError):
        g_token_manager.get_token(account, GOOGLE_EMAIL_SCOPE)
    db.session.refresh(account)
    assert len(account.valid_auth_credentials) == 1
コード例 #3
0
def test_g_token_manager(
        db, patch_access_token_getter,
        account_with_multiple_auth_creds,
        account_with_single_auth_creds):
    account = account_with_multiple_auth_creds
    refresh_token1 = account.auth_credentials[0].refresh_token
    refresh_token2 = account.auth_credentials[1].refresh_token
    g_token_manager.clear_cache(account)

    # existing account w/ multiple credentials, all valid
    assert (g_token_manager.get_token(account, GOOGLE_EMAIL_SCOPE) ==
            ACCESS_TOKEN)
    assert (g_token_manager.get_token(account, GOOGLE_CONTACTS_SCOPE) ==
            ACCESS_TOKEN)
    assert (g_token_manager.get_token(account, GOOGLE_CALENDAR_SCOPE) ==
            ACCESS_TOKEN)
    for auth_creds in account.auth_credentials:
        assert auth_creds.is_valid

    # existing account w/ multiple credentials: some valid
    patch_access_token_getter.revoke_refresh_token(refresh_token1)
    g_token_manager.clear_cache(account)

    with pytest.raises(OAuthError):
        g_token_manager.get_token(account, GOOGLE_CONTACTS_SCOPE)

    assert (g_token_manager.get_token(account, GOOGLE_EMAIL_SCOPE) ==
            ACCESS_TOKEN)

    with pytest.raises(OAuthError):
        g_token_manager.get_token(account, GOOGLE_CALENDAR_SCOPE)

    # existing account w/ multiple credentials: all invalid
    patch_access_token_getter.revoke_refresh_token(refresh_token2)
    g_token_manager.clear_cache(account)

    with pytest.raises(OAuthError):
        g_token_manager.get_token(account, GOOGLE_EMAIL_SCOPE)
    with pytest.raises(OAuthError):
        g_token_manager.get_token(account, GOOGLE_CALENDAR_SCOPE)
    with pytest.raises(OAuthError):
        g_token_manager.get_token(account, GOOGLE_CONTACTS_SCOPE)
    db.session.refresh(account)
    for auth_creds in account.auth_credentials:
        assert not auth_creds.is_valid

    # existing account w/ one credential
    account = account_with_single_auth_creds
    g_token_manager.clear_cache(account)

    assert (g_token_manager.get_token(account, GOOGLE_EMAIL_SCOPE) ==
            ACCESS_TOKEN)
    assert (g_token_manager.get_token(account, GOOGLE_CALENDAR_SCOPE) ==
            ACCESS_TOKEN)
    with pytest.raises(OAuthError):
        g_token_manager.get_token(account, GOOGLE_CONTACTS_SCOPE)
コード例 #4
0
def test_g_token_manager(
        db, patch_access_token_getter,
        account_with_multiple_auth_creds,
        account_with_single_auth_creds):
    account = account_with_multiple_auth_creds
    refresh_token1 = account.auth_credentials[0].refresh_token
    refresh_token2 = account.auth_credentials[1].refresh_token
    g_token_manager.clear_cache(account)

    # existing account w/ multiple credentials, all valid
    assert (g_token_manager.get_token(account, GOOGLE_EMAIL_SCOPE) ==
            ACCESS_TOKEN)
    assert (g_token_manager.get_token(account, GOOGLE_CONTACTS_SCOPE) ==
            ACCESS_TOKEN)
    assert (g_token_manager.get_token(account, GOOGLE_CALENDAR_SCOPE) ==
            ACCESS_TOKEN)
    for auth_creds in account.auth_credentials:
        assert auth_creds.is_valid

    # existing account w/ multiple credentials: some valid
    patch_access_token_getter.revoke_refresh_token(refresh_token1)
    g_token_manager.clear_cache(account)

    with pytest.raises(OAuthError):
        g_token_manager.get_token(account, GOOGLE_CONTACTS_SCOPE)

    assert (g_token_manager.get_token(account, GOOGLE_EMAIL_SCOPE) ==
            ACCESS_TOKEN)

    with pytest.raises(OAuthError):
        g_token_manager.get_token(account, GOOGLE_CALENDAR_SCOPE)

    # existing account w/ multiple credentials: all invalid
    patch_access_token_getter.revoke_refresh_token(refresh_token2)
    g_token_manager.clear_cache(account)

    with pytest.raises(OAuthError):
        g_token_manager.get_token(account, GOOGLE_EMAIL_SCOPE)
    with pytest.raises(OAuthError):
        g_token_manager.get_token(account, GOOGLE_CALENDAR_SCOPE)
    with pytest.raises(OAuthError):
        g_token_manager.get_token(account, GOOGLE_CONTACTS_SCOPE)
    db.session.refresh(account)
    for auth_creds in account.auth_credentials:
        assert not auth_creds.is_valid

    # existing account w/ one credential
    account = account_with_single_auth_creds
    g_token_manager.clear_cache(account)

    assert (g_token_manager.get_token(account, GOOGLE_EMAIL_SCOPE) ==
            ACCESS_TOKEN)
    assert (g_token_manager.get_token(account, GOOGLE_CALENDAR_SCOPE) ==
            ACCESS_TOKEN)
    with pytest.raises(OAuthError):
        g_token_manager.get_token(account, GOOGLE_CONTACTS_SCOPE)