aboutsummaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-10-18 02:38:41 -0400
committerJesse Luehrs <doy@tozt.net>2014-10-18 02:38:41 -0400
commit91295c22eff10201049e4fb926680b3db9e11dde (patch)
tree7eadb4be2dd30ba35e58bda6614c03880a7cc6ed /t
parent5ab52ce39d2f89d6aa7bdec1248c4ceafd9c7893 (diff)
downloadlibvt100-python-91295c22eff10201049e4fb926680b3db9e11dde.tar.gz
libvt100-python-91295c22eff10201049e4fb926680b3db9e11dde.zip
start adding tests
Diffstat (limited to 't')
-rw-r--r--t/__init__.py7
-rw-r--r--t/basic_test.py15
-rw-r--r--t/text_test.py53
3 files changed, 75 insertions, 0 deletions
diff --git a/t/__init__.py b/t/__init__.py
new file mode 100644
index 0000000..560d9da
--- /dev/null
+++ b/t/__init__.py
@@ -0,0 +1,7 @@
+import unittest
+
+import vt100
+
+class VT100Test(unittest.TestCase):
+ def setUp(self):
+ self.vt = vt100.vt100(24, 80)
diff --git a/t/basic_test.py b/t/basic_test.py
new file mode 100644
index 0000000..cf790ba
--- /dev/null
+++ b/t/basic_test.py
@@ -0,0 +1,15 @@
+import unittest
+
+import vt100
+
+class BasicTest(unittest.TestCase):
+ def test_basic(self):
+ vt = vt100.vt100(24, 80)
+ string = b"foo\033[31m\033[32mb\033[3;7;42ma\033[23mr"
+ vt.process(string)
+ assert vt.get_string_plaintext(0, 0, 0, 50) == "foobar\n"
+ assert vt.cell(0, 0).fgcolor().color() is None
+ assert vt.cell(0, 3).fgcolor().color() == 2
+ assert vt.cell(0, 4).fgcolor().color() == 2
+ assert vt.cell(0, 4).bgcolor().color() == 2
+ assert vt.cell(0, 4).italic()
diff --git a/t/text_test.py b/t/text_test.py
new file mode 100644
index 0000000..70ae05f
--- /dev/null
+++ b/t/text_test.py
@@ -0,0 +1,53 @@
+from . import VT100Test
+
+class TextTest(VT100Test):
+ def test_ascii(self):
+ self.vt.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"
+ assert self.vt.cell(0, 3).contents() == ""
+ assert self.vt.cell(1, 0).contents() == ""
+ assert self.vt.get_string_plaintext(0, 0, 23, 79) == 'foo' + ('\n' * 24)
+ assert self.vt.get_string_plaintext(0, 0, 500, 500) == 'foo' + ('\n' * 24)
+
+ def test_utf8(self):
+ self.vt.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"
+ assert self.vt.cell(0, 3).contents() == "é"
+ assert self.vt.cell(0, 4).contents() == ""
+ assert self.vt.cell(1, 0).contents() == ""
+ assert self.vt.get_string_plaintext(0, 0, 23, 79) == 'café' + ('\n' * 24)
+ 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")
+ assert self.vt.cell(0, 0).contents() == "f"
+ assert self.vt.cell(0, 1).contents() == ""
+ assert self.vt.cell(0, 2).contents() == ""
+ assert self.vt.cell(1, 0).contents() == "o"
+ assert self.vt.cell(1, 1).contents() == "o"
+ assert self.vt.cell(1, 2).contents() == ""
+ assert self.vt.cell(2, 0).contents() == "o"
+ assert self.vt.cell(2, 1).contents() == "o"
+ assert self.vt.cell(2, 2).contents() == "d"
+ assert self.vt.cell(0, 3).contents() == ""
+ assert self.vt.cell(3, 0).contents() == ""
+ assert self.vt.get_string_plaintext(0, 0, 23, 79) == 'f\noo\nood' + ('\n' * 22)
+ assert self.vt.get_string_plaintext(0, 0, 500, 500) == 'f\noo\nood' + ('\n' * 22)
+
+ def test_wide(self):
+ self.vt.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() == ""
+ assert self.vt.cell(0, 3).contents() == "b"
+ assert self.vt.cell(0, 4).contents() == "ネ"
+ assert self.vt.cell(0, 5).contents() == ""
+ assert self.vt.cell(0, 6).contents() == ""
+ assert self.vt.cell(1, 0).contents() == ""
+ print(self.vt.get_string_plaintext(0, 0, 0, 50))
+ assert self.vt.get_string_plaintext(0, 0, 23, 79) == 'aデbネ' + ('\n' * 24)
+ assert self.vt.get_string_plaintext(0, 0, 500, 500) == 'aデbネ' + ('\n' * 24)