В чем разница между 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 внесли это изменение, чтобы обеспечить переход от предыдущего использования, и поведение останется прежним только для нескольких версий.

Вернуться на верх