aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-10-20 18:21:42 -0400
committerJesse Luehrs <doy@tozt.net>2014-10-20 18:21:42 -0400
commite576b1d52a12c48b06c76e9f75fadb1428c5b0d4 (patch)
tree8644dd5157b4a918c5d3dc2e3dfb7a991326d066
parent2b01a56de9184b9e2112b6ed75f70d1a46ffd198 (diff)
downloadlibvt100-python-e576b1d52a12c48b06c76e9f75fadb1428c5b0d4.tar.gz
libvt100-python-e576b1d52a12c48b06c76e9f75fadb1428c5b0d4.zip
test that .process returns the correct value in all cases
-rw-r--r--t/__init__.py7
-rw-r--r--t/control_test.py12
-rw-r--r--t/escape_test.py14
-rw-r--r--t/osc_test.py14
-rw-r--r--t/text_test.py26
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)