File: test_printer.py

package info (click to toggle)
gcalcli 4.5.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,376 kB
  • sloc: python: 4,135; makefile: 10; sh: 7
file content (87 lines) | stat: -rw-r--r-- 2,031 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
from argparse import ArgumentTypeError
from io import StringIO
import sys

import pytest

from gcalcli.printer import COLOR_NAMES, Printer, valid_color_name


def test_init():
    cp = Printer()
    assert cp


def test_valid_color_name():
    with pytest.raises(ArgumentTypeError):
        valid_color_name('this_is_not_a_colorname')


def test_all_colors():
    """Makes sure the COLOR_NAMES is in sync with the colors in the printer"""
    cp = Printer()
    for color_name in COLOR_NAMES:
        out = StringIO()
        cp.msg('msg', color_name, file=out)
        out.seek(0)
        assert out.read() == cp.colors[color_name] + 'msg' + '\033[0m'


def test_red_msg():
    cp = Printer()
    out = StringIO()
    cp.msg('msg', 'red', file=out)
    out.seek(0)
    assert out.read() == '\033[0;31mmsg\033[0m'


def test_err_msg(monkeypatch):
    err = StringIO()
    monkeypatch.setattr(sys, 'stderr', err)
    cp = Printer()
    cp.err_msg('error')
    err.seek(0)
    assert err.read() == '\033[31;1merror\033[0m'


def test_debug_msg(monkeypatch):
    err = StringIO()
    monkeypatch.setattr(sys, 'stderr', err)
    cp = Printer()
    cp.debug_msg('debug')
    err.seek(0)
    assert err.read() == '\033[0;33mdebug\033[0m'


def test_conky_red_msg():
    cp = Printer(conky=True)
    out = StringIO()
    cp.msg('msg', 'red', file=out)
    out.seek(0)
    assert out.read() == '${color red}msg${color}'


def test_conky_err_msg(monkeypatch):
    err = StringIO()
    monkeypatch.setattr(sys, 'stderr', err)
    cp = Printer(conky=True)
    cp.err_msg('error')
    err.seek(0)
    assert err.read() == '${color red}error${color}'


def test_conky_debug_msg(monkeypatch):
    err = StringIO()
    monkeypatch.setattr(sys, 'stderr', err)
    cp = Printer(conky=True)
    cp.debug_msg('debug')
    err.seek(0)
    assert err.read() == '${color yellow}debug${color}'


def test_no_color():
    cp = Printer(use_color=False)
    out = StringIO()
    cp.msg('msg', 'red', file=out)
    out.seek(0)
    assert out.read() == 'msg'