Configurações personalizadas ao testar o aplicativo Django

Às vezes, você deseja usar configurações diferentes em seus casos de teste de unidade. Às vezes vejo pessoas fazendo errado, mas há uma maneira fácil de fazer isso usando o override_settingsdecorator.

from django.conf import settings
from django.test import TestCase
from django.test.utils import override_settings

class MyTest(TestCase):
@override_settings(INTERNAL_IPS=())
def test_public_access(self):
self.assertEqual(settings.INTERNAL_IPS, ())

@override_settings(INTERNAL_IPS=('127.0.0.1',))
def test_internal_access(self):
self.assertEqual(settings.INTERNAL_IPS, ('127.0.0.1',))

@override_settings(SOME_NEW_SETTINGS="YES")
def test_custom_settings(self):
self.assertEqual(
getattr
(settings, "SOME_NEW_SETTINGS", "NO"),
"YES"
)