|
17 | 17 | import os
|
18 | 18 |
|
19 | 19 | import pytest
|
| 20 | +from google.auth.exceptions import DefaultCredentialsError |
20 | 21 |
|
21 | 22 | import firebase_admin
|
22 | 23 | from firebase_admin import credentials
|
@@ -315,6 +316,27 @@ def evaluate():
|
315 | 316 | assert app.project_id is None
|
316 | 317 | testutils.run_without_project_id(evaluate)
|
317 | 318 |
|
| 319 | + def test_no_project_id_from_environment(self, app_credential): |
| 320 | + default_env = 'GOOGLE_APPLICATION_CREDENTIALS' |
| 321 | + gcloud_env = 'CLOUDSDK_CONFIG' |
| 322 | + def evaluate(): |
| 323 | + app = firebase_admin.initialize_app(app_credential, name='myApp') |
| 324 | + app._credential._g_credential = None |
| 325 | + old_gcloud_var = os.environ.get(gcloud_env) |
| 326 | + os.environ[gcloud_env] = '' |
| 327 | + old_default_var = os.environ.get(default_env) |
| 328 | + if old_default_var: |
| 329 | + del os.environ[default_env] |
| 330 | + with pytest.raises((AttributeError, DefaultCredentialsError)): |
| 331 | + project_id = app._credential.project_id |
| 332 | + project_id = app.project_id |
| 333 | + if old_default_var: |
| 334 | + os.environ[default_env] = old_default_var |
| 335 | + if old_gcloud_var: |
| 336 | + os.environ[gcloud_env] = old_gcloud_var |
| 337 | + assert project_id is None |
| 338 | + testutils.run_without_project_id(evaluate) |
| 339 | + |
318 | 340 | def test_non_string_project_id(self):
|
319 | 341 | options = {'projectId': {'key': 'not a string'}}
|
320 | 342 | with pytest.raises(ValueError):
|
|
0 commit comments