Make Buffer tests prettier with method chaining

Feel like I'm gonna regret this but YOLO.
This commit is contained in:
seem 2020-09-06 10:47:21 +02:00
parent cf41848edb
commit e5f0bd6188
2 changed files with 22 additions and 22 deletions

View file

@ -47,14 +47,19 @@ class Buffer:
self.cx = cx
self.cy = cy
def up(self) -> None:
self.cy -= 1
def up(self) -> "Buffer":
if self.cy > 0:
self.cy -= 1
return self
def down(self) -> None:
def down(self) -> "Buffer":
self.cy += 1
return self
def left(self) -> None:
def left(self) -> "Buffer":
self.cx -= 1
return self
def right(self) -> None:
def right(self) -> "Buffer":
self.cx += 1
return self

View file

@ -1,30 +1,25 @@
from editor.main import Buffer
def test_buffer_init():
buf = Buffer()
assert buf.cx == buf.cy == 0
def test_buffer_up():
buf = Buffer(cy=1)
buf.up()
assert buf.cy == 0
assert Buffer(cy=1).up().cy == 0
def test_buffer_up_at_first_line():
assert Buffer().up().cy == 0
def test_buffer_down():
buf = Buffer()
buf.down()
assert buf.cy == 1
assert Buffer().down().cy == 1
def test_buffer_down_at_last_line():
assert Buffer().up().cy == 0
def test_buffer_left():
buf = Buffer(cx=1)
buf.left()
assert buf.cx == 0
assert Buffer(cx=1).left().cx == 0
def test_buffer_right():
buf = Buffer()
buf.right()
assert buf.cx == 1
assert Buffer().right().cx == 1