SimpleTestCase.settings()
[source]
For testing purposes it’s often useful to change a setting temporarily and revert to the original value after running the testing code. For this use case Django provides a standard Python context manager (see PEP 343) called settings()
, which can be used like this:
from django.test import TestCase class LoginTestCase(TestCase): def test_login(self): # First check for the default behavior response = self.client.get('/sekrit/') self.assertRedirects(response, '/accounts/login/?next=/sekrit/') # Then override the LOGIN_URL setting with self.settings(LOGIN_URL='/other/login/'): response = self.client.get('/sekrit/') self.assertRedirects(response, '/other/login/?next=/sekrit/')
This example will override the LOGIN_URL
setting for the code in the with
block and reset its value to the previous state afterwards.
Please login to continue.