2016-10-16 18:06:27 +03:00
|
|
|
#!/usr/bin/env python
|
|
|
|
# vim:fileencoding=utf-8
|
|
|
|
# License: GPL v3 Copyright: 2016, Kovid Goyal <kovid at kovidgoyal.net>
|
|
|
|
|
2016-10-18 08:34:30 +03:00
|
|
|
from collections import defaultdict
|
2016-10-16 18:06:27 +03:00
|
|
|
from unittest import TestCase
|
|
|
|
|
2016-10-18 08:34:30 +03:00
|
|
|
from kitty.screen import Screen
|
|
|
|
from kitty.tracker import ChangeTracker
|
|
|
|
from kitty.config import defaults
|
|
|
|
|
2016-10-16 18:06:27 +03:00
|
|
|
|
|
|
|
class BaseTest(TestCase):
|
|
|
|
|
|
|
|
ae = TestCase.assertEqual
|
2016-10-18 08:34:30 +03:00
|
|
|
|
|
|
|
def create_screen(self, cols=5, lines=5, history_size=5):
|
|
|
|
t = ChangeTracker()
|
|
|
|
opts = defaults._replace(scrollback_lines=history_size)
|
|
|
|
s = Screen(opts, t, columns=cols, lines=lines)
|
|
|
|
return s, t
|
|
|
|
|
|
|
|
def assertChanges(self, t, ignore='', **expected_changes):
|
|
|
|
actual_changes = t.consolidate_changes()
|
|
|
|
ignore = frozenset(ignore.split())
|
|
|
|
for k, v in actual_changes.items():
|
|
|
|
if isinstance(v, defaultdict):
|
|
|
|
v = dict(v)
|
|
|
|
if k not in ignore:
|
|
|
|
if k in expected_changes:
|
|
|
|
self.ae(expected_changes[k], v)
|
|
|
|
else:
|
|
|
|
self.assertFalse(v)
|