python / intermediate
Snippet
Temporäres Überschreiben von Einstellungen in Django-Tests mittels override_settings
Django-Tests müssen häufig das Verhalten unter verschiedenen Konfigurationszuständen überprüfen. Der Decorator oder Kontextmanager override_settings ermöglicht es, spezifische Projekteinstellungen innerhalb eines Testblocks temporär zu ändern, ohne andere Testläufe zu beeinflussen.
snippet.py
python
1
2
3
4
5
6
7
8
9
10
11
from django.test import TestCase, override_settingsfrom django.conf import settingsclass NotificationConfigTest(TestCase):def test_feature_flag_enabled(self):with override_settings(ENABLE_NOTIFICATIONS=True):self.assertTrue(settings.ENABLE_NOTIFICATIONS)def test_feature_flag_disabled(self):with override_settings(ENABLE_NOTIFICATIONS=False):self.assertFalse(settings.ENABLE_NOTIFICATIONS)
django
Erklärung
1
from django.test import TestCase, override_settings
Importiert TestCase und das Werkzeug override_settings aus der Django-Testsuite.
2
with override_settings(ENABLE_NOTIFICATIONS=True):
Öffnet einen Kontextmanager, der ENABLE_NOTIFICATIONS innerhalb des Blocks temporär auf True setzt.
3
self.assertTrue(settings.ENABLE_NOTIFICATIONS)
Überprüft per Assertion, dass die Einstellung während der Ausführung den überschriebenen Booleschen Wert widerspiegelt.