summaryrefslogtreecommitdiffstats
path: root/testenv/misc/colour_terminal.py
diff options
context:
space:
mode:
Diffstat (limited to 'testenv/misc/colour_terminal.py')
-rw-r--r--testenv/misc/colour_terminal.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/testenv/misc/colour_terminal.py b/testenv/misc/colour_terminal.py
new file mode 100644
index 0000000..bc549a2
--- /dev/null
+++ b/testenv/misc/colour_terminal.py
@@ -0,0 +1,46 @@
+from functools import partial
+import platform
+from os import getenv
+import sys
+
+""" This module allows printing coloured output to the terminal when running a
+Wget Test under certain conditions.
+The output is coloured only on Linux systems. This is because coloured output
+in the terminal on Windows requires too much effort for what is simply a
+convenience. This might work on OSX terminals, but without a confirmation, it
+remains unsupported.
+
+Another important aspect is that the coloured output is printed only if the
+environment variable MAKE_CHECK is not set. This variable is set when running
+the test suite through, `make check`. In that case, the output is not only
+printed to the terminal but also copied to a log file where the ANSI escape
+codes on;y add clutter. """
+
+
+T_COLORS = {
+ 'PURPLE': '\033[95m',
+ 'BLUE': '\033[94m',
+ 'GREEN': '\033[92m',
+ 'YELLOW': '\033[93m',
+ 'RED': '\033[91m',
+ 'ENDC': '\033[0m'
+}
+
+system = True if platform.system() in ('Linux', 'Darwin') else False
+check = False if getenv("MAKE_CHECK") == 'True' else True
+
+
+def printer(color, string):
+ if sys.stdout.isatty() and system and check:
+ print(T_COLORS.get(color) + string + T_COLORS.get('ENDC'))
+ else:
+ print(string)
+
+
+print_blue = partial(printer, 'BLUE')
+print_red = partial(printer, 'RED')
+print_green = partial(printer, 'GREEN')
+print_purple = partial(printer, 'PURPLE')
+print_yellow = partial(printer, 'YELLOW')
+
+# vim: set ts=8 sw=3 tw=80 et :