diff options
| author | Aymeric Augustin <aymeric.augustin@m4x.org> | 2015-08-29 13:26:00 +0200 |
|---|---|---|
| committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2015-08-29 20:50:00 +0200 |
| commit | b79fc11d730b5beff92e9dd8853a61524cdeffe3 (patch) | |
| tree | 831f63a2de361dc8e91927da76dff78860d22885 /tests/utils_tests/test_autoreload.py | |
| parent | fe6ddb837d18bd4e71cd22fc18272d31478b19f2 (diff) | |
Made the autoreloader survive all exceptions.
Refs #24704.
Diffstat (limited to 'tests/utils_tests/test_autoreload.py')
| -rw-r--r-- | tests/utils_tests/test_autoreload.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/utils_tests/test_autoreload.py b/tests/utils_tests/test_autoreload.py index fd477bd268..6b60f00ede 100644 --- a/tests/utils_tests/test_autoreload.py +++ b/tests/utils_tests/test_autoreload.py @@ -169,3 +169,19 @@ class TestFilenameGenerator(SimpleTestCase): with self.assertRaises(SyntaxError): autoreload.check_errors(import_module)('test_syntax_error') self.assertFileFoundOnlyNew(filename) + + def test_check_errors_catches_all_exceptions(self): + """ + Since Python may raise arbitrary exceptions when importing code, + check_errors() must catch Exception, not just some subclasses. + """ + dirname = tempfile.mkdtemp() + filename = os.path.join(dirname, 'test_exception.py') + self.addCleanup(shutil.rmtree, dirname) + with open(filename, 'w') as f: + f.write("raise Exception") + + with extend_sys_path(dirname): + with self.assertRaises(Exception): + autoreload.check_errors(import_module)('test_exception') + self.assertFileFound(filename) |
