root/livinglogic.python.xist/test/test_ansistyle.py @ 3930:b42ff69b1430

Revision 3930:b42ff69b1430, 2.6 KB (checked in by Walter Doerwald <walter@…>, 10 years ago)

Fixed a bug in the generated JSP code for the def opcode in ll.xist.ns.jsp.fromul4().

Bump copyright year.

Line 
1#! /usr/bin/env/python
2# -*- coding: utf-8 -*-
3
4## Copyright 2000-2010 by LivingLogic AG, Bayreuth/Germany.
5## Copyright 2000-2010 by Walter Dörwald
6##
7## All Rights Reserved
8##
9## See ll/__init__.py for the license
10
11
12import py.test
13
14from ll import ansistyle
15
16
17def test_noswitch():
18    def check(c):
19        assert not ansistyle.switchcolor(c, c)
20
21    for blink in (0000, 0400):
22        for underline in (0000, 0200):
23            for bold in (0000, 0100):
24                for foreground in (0000, 0070):
25                    for background in (0000, 0007):
26                        yield check, blink|underline|bold|foreground|background
27
28
29def test_blink():
30    assert str(ansistyle.Text(0470, "foo")) == "\033[5mfoo\033[0m"
31    assert str(ansistyle.Text(0470, "foo", ansistyle.Text(0070, "bar"))) == "\033[5mfoo\033[0mbar"
32
33
34def test_underline():
35    assert str(ansistyle.Text(0270, "foo")) == "\033[4mfoo\033[0m"
36    assert str(ansistyle.Text(0270, "foo", ansistyle.Text(0070, "bar"))) == "\033[4mfoo\033[0mbar"
37
38
39def test_bold():
40    assert str(ansistyle.Text(0170, "foo")) == "\033[1mfoo\033[0m"
41    assert str(ansistyle.Text(0170, "foo", ansistyle.Text(0070, "bar"))) == "\033[1mfoo\033[0mbar"
42
43
44def test_background():
45    assert str(ansistyle.Text(0075, "foo")) == "\033[45mfoo\033[0m"
46    assert str(ansistyle.Text(0075, "foo", ansistyle.Text(0070, "bar"))) == "\033[45mfoo\033[0mbar"
47
48
49def test_foreground():
50    assert str(ansistyle.Text(0050, "foo")) == "\033[35mfoo\033[0m"
51    assert str(ansistyle.Text(0050, "foo", ansistyle.Text(0070, "bar"))) == "\033[35mfoo\033[0mbar"
52
53
54def test_all():
55    assert str(ansistyle.Text(0754, "foo")) == "\033[1;4;5;35;44mfoo\033[0m"
56    assert str(ansistyle.Text(0754, "foo", ansistyle.Text(0070, "bar"))) == "\033[1;4;5;35;44mfoo\033[0mbar"
57
58
59def test_nested():
60    assert str(ansistyle.Text(0075, "foo", ansistyle.Text(0050, "bar"))) == "\033[45mfoo\033[35;40mbar\033[0m"
61    assert str(ansistyle.Text(0075, "foo", (0050, "bar"))) == "\033[45mfoo\033[35;40mbar\033[0m"
62    assert str(ansistyle.Text(0075, "foo", (0050, (0060, "bar"), "baz"))) == "\033[45mfoo\033[36;40mbar\033[35mbaz\033[0m"
63
64
65def test_bug():
66    assert str(ansistyle.Text(-1, "x", (0150, "y"), "z")) == "x\033[1;35my\033[0mz"
67
68
69def test_escaped():
70    class Escaped(ansistyle.EscapedText):
71        def escapechar(self, c):
72            if c == "?":
73                return (0060, "?")
74            else:
75                return c
76
77    assert str(Escaped("!?!")) == "!\033[36m?\033[0m!"
78
79
80def test_pushpop():
81    c = ansistyle.Colorizer()
82    c.pushcolor(0060)
83    assert "".join(c.feed("gurk")) == "\033[36mgurk"
84    c.pushcolor(0050)
85    assert "".join(c.feed("hurz")) == "\033[35mhurz"
86    c.popcolor()
87    assert "".join(c.feed("hinz")) == "\033[36mhinz"
88    c.popcolor()
89    assert "".join(c.feed("kunz")) == "\033[0mkunz"
90   
Note: See TracBrowser for help on using the browser.