Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

# encoding: utf-8
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import sys
from io import StringIO
import mozunit
import pytest
from mozterm import Terminal
@pytest.fixture
def terminal():
blessed = pytest.importorskip("blessed")
kind = "xterm-256color"
try:
term = Terminal(stream=StringIO(), force_styling=True, kind=kind)
except blessed.curses.error:
pytest.skip("terminal '{}' not found".format(kind))
return term
EXPECTED_DICT = {
"log_test_status_fail": "\x1b[31mlog_test_status_fail\x1b(B\x1b[m",
"log_process_output": "\x1b[34mlog_process_output\x1b(B\x1b[m",
"log_test_status_pass": "\x1b[32mlog_test_status_pass\x1b(B\x1b[m",
"log_test_status_unexpected_fail": "\x1b[31mlog_test_status_unexpected_fail\x1b(B\x1b[m",
"log_test_status_known_intermittent": "\x1b[33mlog_test_status_known_intermittent\x1b(B\x1b[m",
"time": "\x1b[36mtime\x1b(B\x1b[m",
"action": "\x1b[33maction\x1b(B\x1b[m",
"pid": "\x1b[36mpid\x1b(B\x1b[m",
"heading": "\x1b[1m\x1b[33mheading\x1b(B\x1b[m",
"sub_heading": "\x1b[33msub_heading\x1b(B\x1b[m",
"error": "\x1b[31merror\x1b(B\x1b[m",
"warning": "\x1b[33mwarning\x1b(B\x1b[m",
"bold": "\x1b[1mbold\x1b(B\x1b[m",
"grey": "\x1b[38;2;190;190;190mgrey\x1b(B\x1b[m",
"normal": "\x1b[90mnormal\x1b(B\x1b[m",
"bright_black": "\x1b[90mbright_black\x1b(B\x1b[m",
}
@pytest.mark.skipif(
not sys.platform.startswith("win"),
reason="Only do ANSI Escape Sequence comparisons on Windows.",
)
def test_terminal_colors(terminal):
from mozlog.formatters.machformatter import TerminalColors, color_dict
actual_dict = TerminalColors(terminal, color_dict)
for key in color_dict:
assert getattr(actual_dict, key)(key) == EXPECTED_DICT[key]
if __name__ == "__main__":
mozunit.main()