Commit ea7827ba authored by Johannes Bechberger's avatar Johannes Bechberger

Add `--no_color` option for uncolored output

parent 3a47e3cd
...@@ -127,7 +127,7 @@ Output of the `./mjt.py --help` ...@@ -127,7 +127,7 @@ Output of the `./mjt.py --help`
``` ```
usage: mjt.py [-h] [--only_incorrect_tests] [--produce_no_reports] usage: mjt.py [-h] [--only_incorrect_tests] [--produce_no_reports]
[--produce_all_reports] [--parallel] [--produce_all_reports] [--parallel]
[--output_no_incorrect_reports] [--ci_testing] [--output_no_incorrect_reports] [--no_color] [--ci_testing]
[--log_level LOG_LEVEL] [--log_level LOG_LEVEL]
{all,lexer,syntax,ast,semantic,exec} MJ_RUN {all,lexer,syntax,ast,semantic,exec} MJ_RUN
...@@ -151,6 +151,7 @@ optional arguments: ...@@ -151,6 +151,7 @@ optional arguments:
--parallel Run the tests in parallel --parallel Run the tests in parallel
--output_no_incorrect_reports --output_no_incorrect_reports
Output the long report for every incorrect test case Output the long report for every incorrect test case
--no_color Output no color codes
--ci_testing In mode X the succeeding test cases of later --ci_testing In mode X the succeeding test cases of later
modes/phases should also succeed in this mode, and modes/phases should also succeed in this mode, and
failing test cases of prior modes/phases should also failing test cases of prior modes/phases should also
......
...@@ -48,6 +48,8 @@ if True:#__name__ == '__main__': ...@@ -48,6 +48,8 @@ if True:#__name__ == '__main__':
help="Run the tests in parallel") help="Run the tests in parallel")
parser.add_argument("--output_no_incorrect_reports", action="store_true", default=False, parser.add_argument("--output_no_incorrect_reports", action="store_true", default=False,
help="Output the long report for every incorrect test case") help="Output the long report for every incorrect test case")
parser.add_argument("--no_color", action="store_true", default=False,
help="Output no color codes")
parser.add_argument("--ci_testing", action="store_true", default=False, parser.add_argument("--ci_testing", action="store_true", default=False,
help="In mode X the succeeding test cases of later modes/phases should also succeed in " help="In mode X the succeeding test cases of later modes/phases should also succeed in "
"this mode, and failing test cases of prior modes/phases should also fail in this phase.") "this mode, and failing test cases of prior modes/phases should also fail in this phase.")
......
...@@ -6,7 +6,8 @@ import tempfile ...@@ -6,7 +6,8 @@ import tempfile
from datetime import datetime from datetime import datetime
import time import time
from mjtest.util.shell import execute from mjtest.util.shell import execute
from mjtest.util.utils import get_mjtest_basedir from mjtest.util.utils import get_mjtest_basedir, disable_colored_output
import mjtest.util.utils
from typing import Tuple, List from typing import Tuple, List
from preproc.preproc.preprocessor import PreProcessor, PreProcessorError, is_importable_file from preproc.preproc.preprocessor import PreProcessor, PreProcessorError, is_importable_file
...@@ -45,7 +46,9 @@ class Environment: ...@@ -45,7 +46,9 @@ class Environment:
timeout: int = 30, report_dir: str = "", log_level: str = "warn", timeout: int = 30, report_dir: str = "", log_level: str = "warn",
produce_no_reports: bool = True, output_no_incorrect_reports: bool = False, produce_no_reports: bool = True, output_no_incorrect_reports: bool = False,
produce_all_reports: bool = False, report_subdir: str = None, produce_all_reports: bool = False, report_subdir: str = None,
ci_testing: bool = False): ci_testing: bool = False, no_color: bool = False):
if no_color:
disable_colored_output()
self.mode = mode self.mode = mode
self.mj_run_cmd = os.path.realpath(mj_run) self.mj_run_cmd = os.path.realpath(mj_run)
......
...@@ -3,6 +3,18 @@ from os import path ...@@ -3,6 +3,18 @@ from os import path
import sys import sys
from typing import Tuple from typing import Tuple
COLOR_OUTPUT_IF_POSSIBLE = True
try:
import termcolor
except ImportError:
COLOR_OUTPUT_IF_POSSIBLE = False
def disable_colored_output():
global COLOR_OUTPUT_IF_POSSIBLE
COLOR_OUTPUT_IF_POSSIBLE = False
def get_mjtest_basedir() -> str: def get_mjtest_basedir() -> str:
return path.dirname(path.dirname(path.dirname(path.realpath(__file__)))) return path.dirname(path.dirname(path.dirname(path.realpath(__file__))))
...@@ -12,10 +24,10 @@ def colored(text: str, *args, **kwargs): ...@@ -12,10 +24,10 @@ def colored(text: str, *args, **kwargs):
""" """
Wrapper around termcolor.colored (if it's loadable) Wrapper around termcolor.colored (if it's loadable)
""" """
try: global COLOR_OUTPUT_IF_POSSIBLE
from termcolor import colored if COLOR_OUTPUT_IF_POSSIBLE:
return colored(text, *args, **kwargs) return termcolor.colored(text, *args, **kwargs)
except ImportError: else:
return text return text
...@@ -23,8 +35,8 @@ def cprint(text: str, *args, **kwargs): ...@@ -23,8 +35,8 @@ def cprint(text: str, *args, **kwargs):
""" """
Wrapper around termcolor.cprint (if it's loadable) Wrapper around termcolor.cprint (if it's loadable)
""" """
try: global COLOR_OUTPUT_IF_POSSIBLE
from termcolor import cprint if COLOR_OUTPUT_IF_POSSIBLE:
cprint(text, *args, **kwargs) termcolor.cprint(text, *args, **kwargs)
except ImportError: else:
print(text) print(text)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment