From c981d9140d569d489d338741b6a3d878c4e712da Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 31 Aug 2014 18:51:55 +0200 Subject: [1.7.x] Fixed #22920 -- Avoid masking some exceptions. If loading an application trigger an ImportError, the details of that error were lost in some cases. Thanks Ben Davis for the report. Backport of b161c01 from master --- tests/apps/failing_app/__init__.py | 1 + tests/apps/tests.py | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 tests/apps/failing_app/__init__.py (limited to 'tests') diff --git a/tests/apps/failing_app/__init__.py b/tests/apps/failing_app/__init__.py new file mode 100644 index 0000000000..4ec7f18d40 --- /dev/null +++ b/tests/apps/failing_app/__init__.py @@ -0,0 +1 @@ +raise ImportError("Oops") diff --git a/tests/apps/tests.py b/tests/apps/tests.py index 2c7629ac97..513ed32039 100644 --- a/tests/apps/tests.py +++ b/tests/apps/tests.py @@ -166,6 +166,14 @@ class AppsTests(TestCase): with self.settings(INSTALLED_APPS=['apps.apps.RelabeledAppsConfig', 'apps']): pass + def test_import_exception_is_not_masked(self): + """ + App discovery should preserve stack traces. Regression test for #22920. + """ + with six.assertRaisesRegex(self, ImportError, "Oops"): + with self.settings(INSTALLED_APPS=['apps.failing_app']): + pass + def test_models_py(self): """ Tests that the models in the models.py file were loaded correctly. -- cgit v1.3