Fixed #20167 -- Preserve the traceback of ImportErrors in import_by_path.

Thanks @carljm for the review.
This commit is contained in:
Joe Friedl 2013-03-30 21:26:29 -04:00 committed by Simon Charette
parent 3ff3212713
commit 2d0db67813
2 changed files with 15 additions and 2 deletions

View file

@ -120,6 +120,16 @@ class ModuleImportTestCase(unittest.TestCase):
import_by_path('unexistent.module.path', error_prefix="Foo")
self.assertTrue(str(cm.exception).startswith('Foo'))
def test_import_error_traceback(self):
"""Test preserving the original traceback on an ImportError."""
try:
import_by_path('test_module.bad_module.content')
except ImproperlyConfigured:
traceback = sys.exc_info()[2]
self.assertIsNotNone(traceback.tb_next.tb_next,
'Should have more than the calling frame in the traceback.')
class ProxyFinder(object):
def __init__(self):