diff tests/test-hook @ 9851:9e7b2c49d25d

Make it possible to debug failed hook imports via use of --traceback Prior to this change, if a Python hook module failed to load (e.g. due to an import error or path problem), it was impossible to figure out why the error occurred, because the ImportErrors that got raised were caught but never displayed. If run with --traceback or ui.traceback=True, hg now prints tracebacks of both of the ImportError instances that get raised before it bails.
author Bryan O'Sullivan <bos@serpentine.com>
date Thu, 12 Nov 2009 14:05:52 -0800
parents 87c05a78e588
children 7f5a71946aaa
line wrap: on
line diff
--- a/tests/test-hook	Thu Nov 12 14:34:07 2009 -0600
+++ b/tests/test-hook	Thu Nov 12 14:05:52 2009 -0800
@@ -248,4 +248,18 @@
 cd ../repo
 hg commit
 
+cd ../../b
+echo '# make sure --traceback works on hook import failure'
+cat > importfail.py <<EOF
+import somebogusmodule
+# dereference something in the module to force demandimport to load it
+somebogusmodule.whatever
+EOF
+
+echo '[hooks]' > .hg/hgrc
+echo 'precommit.importfail = python:importfail.whatever' >> .hg/hgrc
+
+echo a >> a
+hg --traceback commit -Ama 2>&1 | grep '^\(exception\|Traceback\|ImportError\)'
+
 exit 0