Skip to content

Commit 9740938

Browse files
committed
concav unable to capture coverage
1 parent 17f4740 commit 9740938

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

pandas/io/gbq.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,14 @@ def get_credentials(self):
160160
return self.get_service_account_credentials()
161161
else:
162162
# Try to retrieve Application Default Credentials
163-
credentials = self.get_application_default_credentials()
163+
project_id = self.project_id
164+
credentials = self.get_application_default_credentials(project_id)
164165
if not credentials:
165166
credentials = self.get_user_account_credentials()
166167
return credentials
167168

168-
def get_application_default_credentials(self):
169+
@staticmethod
170+
def get_application_default_credentials(project_id):
169171
from oauth2client.client import GoogleCredentials
170172
from oauth2client.client import AccessTokenRefreshError
171173
from oauth2client.client import ApplicationDefaultCredentialsError
@@ -182,8 +184,8 @@ def get_application_default_credentials(self):
182184
jobs = bigquery_service.jobs()
183185
job_data = {'configuration': {'query': {'query': 'SELECT 1'}}}
184186
try:
185-
jobs.insert(projectId=self.project_id, body=job_data).execute()
186-
except (AccessTokenRefreshError, HttpError):
187+
jobs.insert(projectId=project_id, body=job_data).execute()
188+
except (AccessTokenRefreshError, HttpError, TypeError):
187189
return None
188190
return credentials
189191

pandas/io/tests/test_gbq.py

+14-6
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,20 @@ def test_generate_bq_schema_deprecated():
189189
df = make_mixed_dataframe_v2(10)
190190
gbq.generate_bq_schema(df)
191191

192+
def google_credentials_import():
193+
try:
194+
from oauth2client.client import GoogleCredentials
195+
return GoogleCredentials
196+
except ImportError:
197+
return type(None)
198+
199+
def test_should_be_able_to_get_credentials_from_default_credentials():
200+
GoogleCredentials = google_credentials_import()
201+
connector = gbq.GbqConnector
202+
credentials = connector.get_application_default_credentials(PROJECT_ID)
203+
valid_types = (type(None), GoogleCredentials)
204+
assert isinstance(credentials, valid_types)
205+
192206

193207
class TestGBQConnectorIntegration(tm.TestCase):
194208

@@ -219,12 +233,6 @@ def test_should_be_able_to_get_results_from_query(self):
219233
schema, pages = self.sut.run_query('SELECT 1')
220234
self.assertTrue(pages is not None)
221235

222-
def test_should_be_able_to_get_credentials_from_default_credentials(self):
223-
from oauth2client.client import GoogleCredentials
224-
credentials = self.sut.get_application_default_credentials()
225-
valid_types = (type(None), GoogleCredentials)
226-
self.assertTrue(isinstance(credentials, valid_types))
227-
228236

229237
class TestGBQConnectorServiceAccountKeyPathIntegration(tm.TestCase):
230238
def setUp(self):

0 commit comments

Comments
 (0)