From e576b1d52a12c48b06c76e9f75fadb1428c5b0d4 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 20 Oct 2014 18:21:42 -0400 Subject: test that .process returns the correct value in all cases --- t/__init__.py | 7 +++++++ t/control_test.py | 12 ++++++------ t/escape_test.py | 14 +++++++------- t/osc_test.py | 14 +++++++------- t/text_test.py | 26 +++++++++++++------------- 5 files changed, 40 insertions(+), 33 deletions(-) diff --git a/t/__init__.py b/t/__init__.py index 560d9da..130a085 100644 --- a/t/__init__.py +++ b/t/__init__.py @@ -5,3 +5,10 @@ import vt100 class VT100Test(unittest.TestCase): def setUp(self): self.vt = vt100.vt100(24, 80) + + def process(self, text): + if type(text) == type(""): + length = len(text.encode("utf-8")) + else: + length = len(text) + assert self.vt.process(text) == length diff --git a/t/control_test.py b/t/control_test.py index d850a0a..b6018c1 100644 --- a/t/control_test.py +++ b/t/control_test.py @@ -3,19 +3,19 @@ from . import VT100Test class ControlTest(VT100Test): def test_bel(self): assert not self.vt.seen_audible_bell() - self.vt.process("\a") + self.process("\a") assert self.vt.seen_audible_bell() assert not self.vt.seen_audible_bell() def test_bs(self): - self.vt.process("foo\b\baa") + self.process("foo\b\baa") assert self.vt.cell(0, 0).contents() == "f" assert self.vt.cell(0, 1).contents() == "a" assert self.vt.cell(0, 2).contents() == "a" assert self.vt.cell(0, 3).contents() == "" assert self.vt.cell(1, 0).contents() == "" assert self.vt.get_string_plaintext(0, 0, 23, 79) == 'faa' + ('\n' * 24) - self.vt.process("\r\nquux\b\b\b\b\b\bbar") + self.process("\r\nquux\b\b\b\b\b\bbar") assert self.vt.cell(1, 0).contents() == "b" assert self.vt.cell(1, 1).contents() == "a" assert self.vt.cell(1, 2).contents() == "r" @@ -25,7 +25,7 @@ class ControlTest(VT100Test): assert self.vt.get_string_plaintext(0, 0, 23, 79) == 'faa\nbarx' + ('\n' * 23) def test_tab(self): - self.vt.process("foo\tbar") + self.process("foo\tbar") assert self.vt.cell(0, 0).contents() == "f" assert self.vt.cell(0, 1).contents() == "o" assert self.vt.cell(0, 2).contents() == "o" @@ -41,7 +41,7 @@ class ControlTest(VT100Test): assert self.vt.get_string_plaintext(0, 0, 23, 79) == 'foo bar' + ('\n' * 24) def test_lf(self): - self.vt.process("foo\nbar") + self.process("foo\nbar") assert self.vt.cell(0, 0).contents() == "f" assert self.vt.cell(0, 1).contents() == "o" assert self.vt.cell(0, 2).contents() == "o" @@ -56,7 +56,7 @@ class ControlTest(VT100Test): assert self.vt.get_string_plaintext(0, 0, 23, 79) == 'foo\n bar' + ('\n' * 23) def test_cr(self): - self.vt.process("fooo\rbar") + self.process("fooo\rbar") assert self.vt.cell(0, 0).contents() == "b" assert self.vt.cell(0, 1).contents() == "a" assert self.vt.cell(0, 2).contents() == "r" diff --git a/t/escape_test.py b/t/escape_test.py index d358c5c..ed5c169 100644 --- a/t/escape_test.py +++ b/t/escape_test.py @@ -3,13 +3,13 @@ from . import VT100Test class EscapeTest(VT100Test): def test_deckpam(self): assert not self.vt.application_keypad() - self.vt.process("\033=") + self.process("\033=") assert self.vt.application_keypad() - self.vt.process("\033>") + self.process("\033>") assert not self.vt.application_keypad() def test_ri(self): - self.vt.process("foo\nbar\033Mbaz") + self.process("foo\nbar\033Mbaz") assert self.vt.get_string_plaintext(0, 0, 23, 79) == 'foo baz\n bar' + ('\n' * 23) def test_ris(self): @@ -47,7 +47,7 @@ class EscapeTest(VT100Test): assert not self.vt.seen_visual_bell() assert not self.vt.seen_audible_bell() - self.vt.process("f\033[31m\033[47;1;3;4moo\033[7m\033[21;21H\033]2;window title\007\033]1;window icon name\007\033[?25l\033[?1h\033=\033[?9h\033[?1000h\033[?1002h\033[?1006h\033[?2004h\007\033g") + self.process("f\033[31m\033[47;1;3;4moo\033[7m\033[21;21H\033]2;window title\007\033]1;window icon name\007\033[?25l\033[?1h\033=\033[?9h\033[?1000h\033[?1002h\033[?1006h\033[?2004h\007\033g") row, col = self.vt.cursor_pos() assert row == 20 @@ -83,7 +83,7 @@ class EscapeTest(VT100Test): assert self.vt.seen_visual_bell() assert self.vt.seen_audible_bell() - self.vt.process("\033c") + self.process("\033c") row, col = self.vt.cursor_pos() assert row == 0 @@ -122,10 +122,10 @@ class EscapeTest(VT100Test): def test_vb(self): assert not self.vt.seen_visual_bell() - self.vt.process("\033g") + self.process("\033g") assert self.vt.seen_visual_bell() assert not self.vt.seen_visual_bell() def test_decsc(self): - self.vt.process("foo\0337\r\n\r\n\r\n bar\0338baz") + self.process("foo\0337\r\n\r\n\r\n bar\0338baz") assert self.vt.get_string_plaintext(0, 0, 23, 79) == 'foobaz\n\n\n bar' + ('\n' * 21) diff --git a/t/osc_test.py b/t/osc_test.py index d2b5438..565d6d4 100644 --- a/t/osc_test.py +++ b/t/osc_test.py @@ -4,34 +4,34 @@ class OSCTest(VT100Test): def test_title(self): assert self.vt.title() == "" assert self.vt.icon_name() == "" - self.vt.process("\033]2;it's a title\007") + self.process("\033]2;it's a title\007") assert self.vt.title() == "it's a title" assert self.vt.icon_name() == "" - self.vt.process("\033]2;\007") + self.process("\033]2;\007") assert self.vt.title() == "" assert self.vt.icon_name() == "" def test_icon_name(self): assert self.vt.title() == "" assert self.vt.icon_name() == "" - self.vt.process("\033]1;it's an icon name\007") + self.process("\033]1;it's an icon name\007") assert self.vt.title() == "" assert self.vt.icon_name() == "it's an icon name" - self.vt.process("\033]1;\007") + self.process("\033]1;\007") assert self.vt.title() == "" assert self.vt.icon_name() == "" def test_title_icon_name(self): assert self.vt.title() == "" assert self.vt.icon_name() == "" - self.vt.process("\033]0;it's both\007") + self.process("\033]0;it's both\007") assert self.vt.title() == "it's both" assert self.vt.icon_name() == "it's both" - self.vt.process("\033]0;\007") + self.process("\033]0;\007") assert self.vt.title() == "" assert self.vt.icon_name() == "" def test_unknown_sequence(self): assert self.vt.cell(0, 0).contents() == "" - self.vt.process("\033]499;some long, long string?\007") + self.process("\033]499;some long, long string?\007") assert self.vt.cell(0, 0).contents() == "" diff --git a/t/text_test.py b/t/text_test.py index 33c6b34..c73801d 100644 --- a/t/text_test.py +++ b/t/text_test.py @@ -2,7 +2,7 @@ from . import VT100Test class TextTest(VT100Test): def test_ascii(self): - self.vt.process("foo") + self.process("foo") assert self.vt.cell(0, 0).contents() == "f" assert self.vt.cell(0, 1).contents() == "o" assert self.vt.cell(0, 2).contents() == "o" @@ -12,7 +12,7 @@ class TextTest(VT100Test): assert self.vt.get_string_plaintext(0, 0, 500, 500) == 'foo' + ('\n' * 24) def test_utf8(self): - self.vt.process("café") + self.process("café") assert self.vt.cell(0, 0).contents() == "c" assert self.vt.cell(0, 1).contents() == "a" assert self.vt.cell(0, 2).contents() == "f" @@ -23,7 +23,7 @@ class TextTest(VT100Test): assert self.vt.get_string_plaintext(0, 0, 500, 500) == 'café' + ('\n' * 24) def test_newlines(self): - self.vt.process("f\r\noo\r\nood") + self.process("f\r\noo\r\nood") assert self.vt.cell(0, 0).contents() == "f" assert self.vt.cell(0, 1).contents() == "" assert self.vt.cell(0, 2).contents() == "" @@ -39,7 +39,7 @@ class TextTest(VT100Test): assert self.vt.get_string_plaintext(0, 0, 500, 500) == 'f\noo\nood' + ('\n' * 22) def test_wide(self): - self.vt.process("aデbネ") + self.process("aデbネ") assert self.vt.cell(0, 0).contents() == "a" assert self.vt.cell(0, 1).contents() == "デ" assert self.vt.cell(0, 2).contents() == "" @@ -53,23 +53,23 @@ class TextTest(VT100Test): assert self.vt.get_string_plaintext(0, 0, 500, 500) == 'aデbネ' + ('\n' * 24) def test_combining(self): - self.vt.process("a") + self.process("a") assert self.vt.cell(0, 0).contents() == "a" - self.vt.process("\u0301") + self.process("\u0301") assert self.vt.cell(0, 0).contents() == "á" - self.vt.process("\033[20;20Habcdefg") + self.process("\033[20;20Habcdefg") assert self.vt.get_string_plaintext(19, 19, 19, 26) == "abcdefg" - self.vt.process("\033[20;25H\u0301") + self.process("\033[20;25H\u0301") assert self.vt.get_string_plaintext(19, 19, 19, 26) == "abcdéfg" - self.vt.process("\033[10;78Haaa") + self.process("\033[10;78Haaa") assert self.vt.cell(9, 79).contents() == "a" - self.vt.process("\r\n\u0301") + self.process("\r\n\u0301") assert self.vt.cell(9, 79).contents() == "a" assert self.vt.cell(10, 0).contents() == "" def test_wrap(self): - self.vt.process("0123456789" * 10) + self.process("0123456789" * 10) assert self.vt.get_string_plaintext(0, 0, 500, 500) == ("0123456789" * 10) + ("\n" * 23) - self.vt.process("\033[5H" + "0123456789" * 8) - self.vt.process("\033[6H" + "0123456789" * 8) + self.process("\033[5H" + "0123456789" * 8) + self.process("\033[6H" + "0123456789" * 8) assert self.vt.get_string_plaintext(0, 0, 500, 500) == ("0123456789" * 10) + ("\n" * 3) + ("0123456789" * 8) + "\n" + ("0123456789" * 8) + ("\n" * 19) -- cgit v1.2.3