"""Never inherit deployment delivery configuration in a Django test run."""
from django.test.runner import DiscoverRunner
from django.test import override_settings


class NonDeliveringRunner(DiscoverRunner):
    def setup_test_environment(self, **kwargs):
        self.delivery_settings = override_settings(
            COMMUNICATIONS_PRODUCTION=False, COMMUNICATIONS_ALLOW_EXTERNAL=False,
            COMMUNICATION_PROVIDERS={},
            EMAIL_BACKEND="django.core.mail.backends.locmem.EmailBackend",
        )
        self.delivery_settings.enable()
        super().setup_test_environment(**kwargs)

    def teardown_test_environment(self, **kwargs):
        try:
            super().teardown_test_environment(**kwargs)
        finally:
            self.delivery_settings.disable()
