В чем разница между SimpleTestCase.settings() и django.test.override_settings?
Django предоставляет различные способы изменения настроек (документации) в тесте на разных уровнях (класс TestCase, метод теста, менеджер контекста). Я понимаю разницу между override_settings
и modify_settings
, но не могу уловить разницу между SimpleTestCase.settings()
и django.test.override_settings()
при использовании в качестве менеджера контекста. Есть ли разница в функциональности или предпочтение в том, какой из них использовать?
Я полагаю, settings()
и override_settings()
могут эффективно использоваться как контекст, но в документации сказано, что settings()
должен использоваться как контекст, а override_settings()
должен использоваться как декоратор.
Но, вполне возможно, что в будущем декоратор можно будет использовать только как декоратор. Лучше всего следовать документации и не пытаться злоупотреблять инструментами, предоставляемыми Django. Возможно, разработчики Django внесли это изменение, чтобы обеспечить переход от предыдущего использования, и поведение останется прежним только для нескольких версий.