From a994dba583898a062dce4392284f61290d74e3e7 Mon Sep 17 00:00:00 2001 From: Umair Khan Date: Thu, 18 Jan 2018 12:19:51 +0500 Subject: [PATCH] tests: Give more descriptive import error. This code takes care of the environment running Python 3.4 when test label is passed directly to the test-backend command: ./tools/test-backend test_alert_words --- zerver/lib/test_runner.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/zerver/lib/test_runner.py b/zerver/lib/test_runner.py index d7ffba954e..cb2fd99b73 100644 --- a/zerver/lib/test_runner.py +++ b/zerver/lib/test_runner.py @@ -446,15 +446,11 @@ class Runner(DiscoverRunner): except AttributeError: # We are likely to get here only when running tests in serial # mode on Python 3.4 or lower. - traceback.print_exc() - print() - print(" This is often caused by a test module/class/function that doesn't exist or ") - print(" import properly. You can usually debug in a `./manage.py shell` via e.g. ") - print(" import zerver.tests.test_messages") - print(" from zerver.tests.test_messages import StreamMessagesTest") - print(" StreamMessagesTest.test_message_to_stream") - print() - sys.exit(1) + # test_labels are always normalized to include the correct prefix. + # If we run the command with ./tools/test-backend test_alert_words, + # test_labels will be equal to ['zerver.tests.test_alert_words']. + for test_label in test_labels: + check_import_error(test_label) self.test_imports(test_labels, suite) if self.parallel == 1: