1919import mock
2020import pytest
2121
22+ from google .auth import external_account_authorized_user
23+ import google .oauth2 .credentials
2224from google_auth_oauthlib import helpers
2325
2426DATA_DIR = os .path .join (os .path .dirname (__file__ ), "data" )
@@ -85,6 +87,7 @@ def test_credentials_from_session(session):
8587
8688 credentials = helpers .credentials_from_session (session , CLIENT_SECRETS_INFO ["web" ])
8789
90+ assert isinstance (credentials , google .oauth2 .credentials .Credentials )
8891 assert credentials .token == mock .sentinel .access_token
8992 assert credentials .expiry == datetime .datetime (1990 , 5 , 29 , 8 , 20 , 0 )
9093 assert credentials ._refresh_token == mock .sentinel .refresh_token
@@ -94,6 +97,27 @@ def test_credentials_from_session(session):
9497 assert credentials ._token_uri == CLIENT_SECRETS_INFO ["web" ]["token_uri" ]
9598
9699
100+ def test_credentials_from_session_3pi (session ):
101+ session .token = {
102+ "access_token" : mock .sentinel .access_token ,
103+ "refresh_token" : mock .sentinel .refresh_token ,
104+ "id_token" : mock .sentinel .id_token ,
105+ "expires_at" : 643969200.0 ,
106+ }
107+
108+ client_secrets_info = CLIENT_SECRETS_INFO ["web" ].copy ()
109+ client_secrets_info ["3pi" ] = True
110+ credentials = helpers .credentials_from_session (session , client_secrets_info )
111+
112+ assert isinstance (credentials , external_account_authorized_user .Credentials )
113+ assert credentials .token == mock .sentinel .access_token
114+ assert credentials .expiry == datetime .datetime (1990 , 5 , 29 , 8 , 20 , 0 )
115+ assert credentials ._refresh_token == mock .sentinel .refresh_token
116+ assert credentials ._client_id == CLIENT_SECRETS_INFO ["web" ]["client_id" ]
117+ assert credentials ._client_secret == CLIENT_SECRETS_INFO ["web" ]["client_secret" ]
118+ assert credentials ._token_url == CLIENT_SECRETS_INFO ["web" ]["token_uri" ]
119+
120+
97121def test_bad_credentials (session ):
98122 with pytest .raises (ValueError ):
99123 helpers .credentials_from_session (session )
0 commit comments