Django では、テストを実行するときに設定を上書きできますSimpleTestCase.settings()
( https://docs.djangoproject.com/en/1.8/topics/testing/tools/#django.test.SimpleTestCase.settings )。Django の設定の 1 つを上書きしようとすると、うまくいきます。
テストを実行したいアプリsettings.py
は、プロジェクト全体でアプリ固有の設定を上書きできるように、次の構造を持つアプリ固有の独自の設定を実行しsettings.py
ます。
from django.conf import settings
APP_SETTING1 = getattr(settings, 'APP_SETTING1', 'foo')
テストの次のダミー コードは、問題を示しています。
from django.test import TestCase
from django.conf import settings as django_settings
from my_app import settings
class MyTestCase(TestCase):
def test_something(self):
with self.settings(APP_SETTING1='bar'):
print(django_settings.APP_SETTING1) # bar
print(settings.APP_SETTING1) # foo
なぜそれが機能しないのですか?どうすれば機能させることができますか?