More work on the screen replacement

The first set of tests now pass
This commit is contained in:
Kovid Goyal
2016-11-13 14:10:57 +05:30
parent 5dc0b9af13
commit 9a7b4263e0
11 changed files with 394 additions and 141 deletions

View File

@@ -33,8 +33,8 @@ class BaseTest(TestCase):
def create_screen(self, cols=5, lines=5, history_size=5):
return S(history_size, columns=cols, lines=lines)
def create_screen2(self, cols=5, lines=5, history_size=5):
return Screen(history_size, None, lines, cols)
def create_screen2(self, cols=5, lines=5):
return Screen(None, lines, cols)
def assertEqualAttributes(self, c1, c2):
x1, y1, c1.x, c1.y = c1.x, c1.y, 0, 0

View File

@@ -4,14 +4,15 @@
from . import BaseTest
from kitty.screen import mo
from kitty.fast_data_types import DECAWM, IRM
class TestScreen(BaseTest):
def test_draw_fast(self):
s = self.create_screen2()
# Test in line-wrap, non-insert mode
s = self.create_screen()
s.draw(b'a' * 5)
self.ae(str(s.line(0)), 'a' * 5)
self.ae(s.cursor.x, 5), self.ae(s.cursor.y, 0)
@@ -30,7 +31,7 @@ class TestScreen(BaseTest):
# Now test without line-wrap
s.reset(), s.reset_dirty()
s.reset_mode(mo.DECAWM)
s.reset_mode(DECAWM)
s.draw(b'0123456789')
self.ae(str(s.line(0)), '01239')
self.ae(s.cursor.x, 5), self.ae(s.cursor.y, 0)
@@ -42,7 +43,7 @@ class TestScreen(BaseTest):
# Now test in insert mode
s.reset(), s.reset_dirty()
s.set_mode(mo.IRM)
s.set_mode(IRM)
s.draw(b'12345' * 5)
s.cursor_back(5)
self.ae(s.cursor.x, 0), self.ae(s.cursor.y, 4)
@@ -79,7 +80,7 @@ class TestScreen(BaseTest):
# Now test without line-wrap
s.reset(), s.reset_dirty()
s.reset_mode(mo.DECAWM)
s.reset_mode(DECAWM)
s.draw('0\u030612345\u03066789\u0306'.encode('utf-8'))
self.ae(str(s.line(0)), '0\u03061239\u0306')
self.ae(s.cursor.x, 5), self.ae(s.cursor.y, 0)
@@ -91,7 +92,7 @@ class TestScreen(BaseTest):
# Now test in insert mode
s.reset(), s.reset_dirty()
s.set_mode(mo.IRM)
s.set_mode(IRM)
s.draw('1\u03062345'.encode('utf-8') * 5)
s.cursor_back(5)
self.ae(s.cursor.x, 0), self.ae(s.cursor.y, 4)