SimpleTestCase.settings()
当通过(https://docs.djangoproject.com/en/1.8/topics/testing/tools/#django.test.SimpleTestCase.settings)运行测试时,Django 允许覆盖设置。当我尝试覆盖 Django 的一项设置时,它工作得很好。
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
为什么这不起作用,我怎样才能使它起作用?