From 976bb564c010eba82ca0f07b1297636c5e090ce9 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Thu, 22 Jan 2015 23:32:19 +0100 Subject: [PATCH] Look at os.environ before early_config This prefers the current current environment before the config from (e.g.) setup.cfg. --- pytest_django/plugin.py | 8 ++++---- tests/test_django_configurations.py | 12 ++++++------ tests/test_django_settings_module.py | 5 +++-- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/pytest_django/plugin.py b/pytest_django/plugin.py index 31a967aac..2e9ab44ae 100644 --- a/pytest_django/plugin.py +++ b/pytest_django/plugin.py @@ -172,13 +172,13 @@ def pytest_load_initial_conftests(early_config, parser, args): # Configure DJANGO_SETTINGS_MODULE ds = (options.ds or - early_config.getini(SETTINGS_MODULE_ENV) or - os.environ.get(SETTINGS_MODULE_ENV)) + os.environ.get(SETTINGS_MODULE_ENV) or + early_config.getini(SETTINGS_MODULE_ENV)) # Configure DJANGO_CONFIGURATION dc = (options.dc or - early_config.getini(CONFIGURATION_ENV) or - os.environ.get(CONFIGURATION_ENV)) + os.environ.get(CONFIGURATION_ENV) or + early_config.getini(CONFIGURATION_ENV)) if ds: os.environ[SETTINGS_MODULE_ENV] = ds diff --git a/tests/test_django_configurations.py b/tests/test_django_configurations.py index 5158a866b..f4f0584c6 100644 --- a/tests/test_django_configurations.py +++ b/tests/test_django_configurations.py @@ -50,22 +50,22 @@ def test_settings(): def test_dc_ini(testdir, monkeypatch): - monkeypatch.setenv('DJANGO_SETTINGS_MODULE', 'DO_NOT_USE') - monkeypatch.setenv('DJANGO_CONFIGURATION', 'DO_NOT_USE') + monkeypatch.setenv('DJANGO_SETTINGS_MODULE', 'tpkg.settings_env') + monkeypatch.setenv('DJANGO_CONFIGURATION', 'MySettings') testdir.makeini(""" [pytest] - DJANGO_SETTINGS_MODULE = tpkg.settings_ini - DJANGO_CONFIGURATION = MySettings + DJANGO_SETTINGS_MODULE = DO_NOT_USE_ini + DJANGO_CONFIGURATION = DO_NOT_USE_ini """) pkg = testdir.mkpydir('tpkg') - settings = pkg.join('settings_ini.py') + settings = pkg.join('settings_env.py') settings.write(BARE_SETTINGS) testdir.makepyfile(""" import os def test_ds(): - assert os.environ['DJANGO_SETTINGS_MODULE'] == 'tpkg.settings_ini' + assert os.environ['DJANGO_SETTINGS_MODULE'] == 'tpkg.settings_env' assert os.environ['DJANGO_CONFIGURATION'] == 'MySettings' """) result = testdir.runpytest() diff --git a/tests/test_django_settings_module.py b/tests/test_django_settings_module.py index 93e1dfa08..7a697b60d 100644 --- a/tests/test_django_settings_module.py +++ b/tests/test_django_settings_module.py @@ -36,10 +36,11 @@ def test_settings(): def test_ds_ini(testdir, monkeypatch): - monkeypatch.setenv('DJANGO_SETTINGS_MODULE', 'DO_NOT_USE') + "DSM env should override ini." + monkeypatch.setenv('DJANGO_SETTINGS_MODULE', 'tpkg.settings_ini') testdir.makeini("""\ [pytest] - DJANGO_SETTINGS_MODULE = tpkg.settings_ini + DJANGO_SETTINGS_MODULE = DO_NOT_USE_ini """) pkg = testdir.mkpydir('tpkg') settings = pkg.join('settings_ini.py')