Как прочитать env vars из настроек в django unittest?

Я новичок в unittesting. Я хочу читать некоторые переменные env в django unittests, но у меня возникли проблемы при попытке прочитать переменную env из django.conf.settings, но я могу прочитать переменную env, используя os.environ.get(). Как я могу получить доступ к текущему env var из django.conf.settings?

Код теста выглядит следующим образом:

from unittest.mock import patch

    
    def test_functionality_in_non_production_environments(self):
        with patch.dict('os.environ', {
            'ENVIRONMENT': 'local',
            'ENV_VALUE': 'test_env_value',
        }):
            from django.conf import settings
            print(settings.ENV_VALUE)           # --> DOES NOT PRINT 'test_env_value'
            print(os.environ.get('ENV_VALUE'))  # --> PRINTS 'test_env_value'

В settings.py:

ENV_VALUE = os.environ.get('ENV_VALUE', 'some other value')

Я пытаюсь проверить правильность поведения кода в зависимости от переменной env.

В некоторых частях кода есть логика типа:

if settings.ENV_VALUE and setting.ENVIRONMENT == 'local':
    # do some stuff

Вы можете переопределить настройки django с помощью override_settings декоратора:

from django.test import TestCase, override_settings

@override_settings(ENV_VALUE='test_env_value', ENVIRONMENT='local')
def test_functionality_in_non_production_environments(self):
    from django.conf import settings
    print(settings.ENV_VALUE)           
    print(os.environ.get('ENV_VALUE'))  
Вернуться на верх