From b1c777a6de7ace4d325155e465549ab08bd4b14f Mon Sep 17 00:00:00 2001 From: Kevin Meinhardt Date: Tue, 11 Feb 2025 12:01:34 +0100 Subject: [PATCH] Include an ENV check in use_fake_fxa that correctly maps to the consolidated runtime environment variable ENV --- docker-compose.yml | 2 ++ settings.py | 4 ++++ settings_test.py | 2 ++ src/olympia/amo/tests/test_views.py | 2 +- src/olympia/amo/utils.py | 4 ++-- src/olympia/conf/dev/settings.py | 1 - src/olympia/conf/prod/settings.py | 2 -- src/olympia/conf/stage/settings.py | 2 -- src/olympia/lib/settings_base.py | 6 ++++++ 9 files changed, 17 insertions(+), 8 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 243ca54e1ae5..19a163e5376c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,10 +19,12 @@ x-env-mapping: &env - HISTSIZE=50000 - HISTIGNORE=ls:exit:"cd .." - HISTCONTROL=erasedups + - ENV=local - CIRCLECI - DATA_BACKUP_SKIP - FXA_CLIENT_ID - FXA_CLIENT_SECRET + x-olympia: &olympia <<: *env image: ${DOCKER_TAG:-} diff --git a/settings.py b/settings.py index 647386353f9c..16fc5b72d9d6 100644 --- a/settings.py +++ b/settings.py @@ -195,3 +195,7 @@ def insert_debug_toolbar_middleware(middlewares): 'static_url_prefix': 'bundle', } } + +# Hardcode the environment to local to guarantee a clear distinction +# between local and non-local environments. +ENV = 'local' diff --git a/settings_test.py b/settings_test.py index 0e29765965c3..59130838959b 100644 --- a/settings_test.py +++ b/settings_test.py @@ -122,3 +122,5 @@ 'client_secret': '.', }, } + +ENV = 'test' diff --git a/src/olympia/amo/tests/test_views.py b/src/olympia/amo/tests/test_views.py index c9d5b00d23cb..0bc991421aa6 100644 --- a/src/olympia/amo/tests/test_views.py +++ b/src/olympia/amo/tests/test_views.py @@ -509,7 +509,7 @@ def test_allow_mozilla_collections(self): @pytest.mark.django_db -@override_settings(FXA_CONFIG={'default': {'client_id': '.'}}) +@override_settings(FXA_CONFIG={'default': {'client_id': '.'}}, ENV='local') def test_fake_fxa_authorization_correct_values_passed(): url = reverse('fake-fxa-authorization') response = test.Client().get(url, {'state': 'foobar'}) diff --git a/src/olympia/amo/utils.py b/src/olympia/amo/utils.py index 84d3dab95be2..0882f9e6423b 100644 --- a/src/olympia/amo/utils.py +++ b/src/olympia/amo/utils.py @@ -1163,8 +1163,8 @@ def extract_colors_from_image(path): def use_fake_fxa(config): """Return whether or not to use a fake FxA server for authentication. - Should always return False in production""" - return config.get('client_id') == '.' + Should always return False in local environments""" + return settings.ENV == 'local' and config.get('client_id') == '.' class AMOJSONEncoder(JSONEncoder): diff --git a/src/olympia/conf/dev/settings.py b/src/olympia/conf/dev/settings.py index bdfd86e62c73..842bd2d326d8 100644 --- a/src/olympia/conf/dev/settings.py +++ b/src/olympia/conf/dev/settings.py @@ -11,7 +11,6 @@ EMAIL_HOST_USER = EMAIL_URL['EMAIL_HOST_USER'] EMAIL_HOST_PASSWORD = EMAIL_URL['EMAIL_HOST_PASSWORD'] -ENV = env('ENV') RAISE_ON_SIGNAL_ERROR = True API_THROTTLING = True diff --git a/src/olympia/conf/prod/settings.py b/src/olympia/conf/prod/settings.py index 25be1bb110b0..2ded276a8f05 100644 --- a/src/olympia/conf/prod/settings.py +++ b/src/olympia/conf/prod/settings.py @@ -20,8 +20,6 @@ SEND_REAL_EMAIL = True -ENV = env('ENV') - API_THROTTLING = True DOMAIN = env('DOMAIN', default='addons.mozilla.org') diff --git a/src/olympia/conf/stage/settings.py b/src/olympia/conf/stage/settings.py index 86110471dbe5..6869bba114ba 100644 --- a/src/olympia/conf/stage/settings.py +++ b/src/olympia/conf/stage/settings.py @@ -11,8 +11,6 @@ EMAIL_HOST_USER = EMAIL_URL['EMAIL_HOST_USER'] EMAIL_HOST_PASSWORD = EMAIL_URL['EMAIL_HOST_PASSWORD'] -ENV = env('ENV') - API_THROTTLING = True DOMAIN = env('DOMAIN', default='addons.allizom.org') diff --git a/src/olympia/lib/settings_base.py b/src/olympia/lib/settings_base.py index 9885d4a36285..cb04efe41362 100644 --- a/src/olympia/lib/settings_base.py +++ b/src/olympia/lib/settings_base.py @@ -1636,3 +1636,9 @@ def read_only_mode(env): 'manifest_path': STATIC_BUILD_MANIFEST_PATH, } } + +# The environment in which the application is running. +# This is set by the environment variables in production environments. +# For local it is hard coded to "local" to guarantee a clear distinction +# between local and non-local environments. +ENV = env('ENV')