run-tests: make sure to check if pygments is installed before using it
authorPulkit Goyal <7895pulkit@gmail.com>
Sat, 15 Jul 2017 02:17:05 +0530
changeset 33552 754569f5e999
parent 33551 1d1779734c99
child 33553 9c4e2aa0a239
run-tests: make sure to check if pygments is installed before using it e80041832e introduced support to color the output of tests but used pygments without checking whether it's installed or not. That breaks test-run-tests.t for machines which don't have pygments installed. This patch conditionalize the color test in test-run-tests.t and also add a check to make sure pygments is installed before using that.
tests/run-tests.py
tests/test-run-tests.t
--- a/tests/run-tests.py	Sat Jul 15 13:21:23 2017 -0700
+++ b/tests/run-tests.py	Sat Jul 15 02:17:05 2017 +0530
@@ -89,7 +89,7 @@
 processlock = threading.Lock()
 
 with_color = False
-
+pygmentspresent = False
 # ANSI color is unsupported prior to Windows 10
 if os.name != 'nt':
     try: # is pygments installed
@@ -97,6 +97,7 @@
         import pygments.lexers as lexers
         import pygments.formatters as formatters
         with_color = True
+        pygmentspresent = True
     except ImportError:
         pass
 
@@ -1650,7 +1651,7 @@
                 else:
                     self.stream.write('\n')
                     for line in lines:
-                        if with_color:
+                        if with_color and pygmentspresent:
                             line = pygments.highlight(
                                     line,
                                     lexers.DiffLexer(),
--- a/tests/test-run-tests.t	Sat Jul 15 13:21:23 2017 -0700
+++ b/tests/test-run-tests.t	Sat Jul 15 02:17:05 2017 +0530
@@ -121,7 +121,7 @@
 
 test diff colorisation
 
-#if no-windows
+#if no-windows pygments
   $ rt test-failure.t --color always
   
   \x1b[38;5;124m--- $TESTTMP/test-failure.t\x1b[39m (esc)