Add tests for the new tabs module
This commit is contained in:
parent
a28b9c4422
commit
2147efa4a1
1 changed files with 171 additions and 0 deletions
171
test/test_tabs.py
Normal file
171
test/test_tabs.py
Normal file
|
@ -0,0 +1,171 @@
|
|||
"""
|
||||
Tests for the Tabs list module
|
||||
"""
|
||||
|
||||
from poezio.core.tabs import Tabs
|
||||
from poezio.tabs import GapTab
|
||||
|
||||
class DummyTab:
|
||||
count = 0
|
||||
|
||||
def __init__(self):
|
||||
self.name = 'dummy%s' % self.count
|
||||
DummyTab.count += 1
|
||||
|
||||
@staticmethod
|
||||
def reset():
|
||||
DummyTab.count = 0
|
||||
|
||||
def test_append():
|
||||
DummyTab.reset()
|
||||
tabs = Tabs()
|
||||
dummy = DummyTab()
|
||||
tabs.append(dummy)
|
||||
assert tabs[0] is dummy
|
||||
assert tabs[0].nb == 0
|
||||
assert tabs['dummy0'] is dummy
|
||||
assert tabs.by_class(DummyTab) == [dummy]
|
||||
|
||||
dummy2 = DummyTab()
|
||||
tabs.append(dummy2)
|
||||
assert tabs[1] is dummy2
|
||||
assert tabs[1].nb == 1
|
||||
assert tabs['dummy1'] is dummy2
|
||||
assert tabs.by_class(DummyTab) == [dummy, dummy2]
|
||||
|
||||
def test_delete():
|
||||
DummyTab.reset()
|
||||
tabs = Tabs()
|
||||
dummy = DummyTab()
|
||||
dummy2 = DummyTab()
|
||||
tabs.append(dummy)
|
||||
tabs.append(dummy2)
|
||||
|
||||
tabs.delete(dummy)
|
||||
assert tabs[0] is dummy2
|
||||
assert tabs.by_class(DummyTab) == [dummy2]
|
||||
assert tabs['dummy0'] is None
|
||||
assert dummy2.nb == 0
|
||||
|
||||
|
||||
def test_delete_restore_previous():
|
||||
DummyTab.reset()
|
||||
tabs = Tabs()
|
||||
dummy = DummyTab()
|
||||
dummy2 = DummyTab()
|
||||
dummy3 = DummyTab()
|
||||
dummy4 = DummyTab()
|
||||
tabs.append(dummy)
|
||||
tabs.append(dummy2)
|
||||
tabs.append(dummy3)
|
||||
tabs.append(dummy4)
|
||||
|
||||
tabs.set_current_tab(dummy4)
|
||||
tabs.set_current_tab(dummy2)
|
||||
tabs.delete(dummy2)
|
||||
assert tabs.current_tab is dummy4
|
||||
assert tabs.current_index == 2
|
||||
assert dummy.nb == 0
|
||||
assert dummy3.nb == 1
|
||||
assert dummy4.nb == 2
|
||||
|
||||
def test_delete_other_tab():
|
||||
DummyTab.reset()
|
||||
tabs = Tabs()
|
||||
dummy = DummyTab()
|
||||
dummy2 = DummyTab()
|
||||
dummy3 = DummyTab()
|
||||
dummy4 = DummyTab()
|
||||
tabs.append(dummy)
|
||||
tabs.append(dummy2)
|
||||
tabs.append(dummy3)
|
||||
tabs.append(dummy4)
|
||||
|
||||
tabs.set_current_tab(dummy4)
|
||||
tabs.delete(dummy2)
|
||||
assert tabs.current_tab is dummy4
|
||||
assert tabs.current_index == 2
|
||||
assert dummy.nb == 0
|
||||
assert dummy3.nb == 1
|
||||
assert dummy4.nb == 2
|
||||
|
||||
def test_insert_and_gaps():
|
||||
DummyTab.reset()
|
||||
tabs = Tabs()
|
||||
dummy = DummyTab()
|
||||
dummy2 = DummyTab()
|
||||
dummy3 = DummyTab()
|
||||
tabs.append(dummy)
|
||||
tabs.append(dummy2)
|
||||
tabs.append(dummy3)
|
||||
|
||||
tabs.insert_tab(2, 1)
|
||||
assert tabs[1] is dummy3
|
||||
assert tabs[2] is dummy2
|
||||
|
||||
tabs.insert_tab(1, 100, gaps=True)
|
||||
assert isinstance(tabs[1], GapTab)
|
||||
assert tabs[3] is dummy3
|
||||
assert tabs[3].nb == 3
|
||||
|
||||
tabs.update_gaps(enable_gaps=False)
|
||||
assert tabs[1] is dummy2
|
||||
assert tabs[1].nb == 1
|
||||
|
||||
def test_replace_tabs():
|
||||
DummyTab.reset()
|
||||
tabs = Tabs()
|
||||
dummy = DummyTab()
|
||||
dummy2 = DummyTab()
|
||||
dummy3 = DummyTab()
|
||||
tabs.append(dummy)
|
||||
tabs.append(dummy2)
|
||||
tabs.append(dummy3)
|
||||
|
||||
tabs.replace_tabs([dummy3, dummy2, dummy])
|
||||
assert tabs[0] is dummy3
|
||||
assert tabs[2] is dummy
|
||||
assert tabs[2].nb == 2
|
||||
|
||||
def test_prev_next():
|
||||
DummyTab.reset()
|
||||
tabs = Tabs()
|
||||
dummy = DummyTab()
|
||||
dummy2 = DummyTab()
|
||||
dummy3 = DummyTab()
|
||||
tabs.append(dummy)
|
||||
tabs.append(dummy2)
|
||||
tabs.append(dummy3)
|
||||
|
||||
for idx in range(6):
|
||||
assert tabs.current_index == idx % 3
|
||||
tabs.next()
|
||||
|
||||
for idx in range(6):
|
||||
assert (3 - idx) % 3 == tabs.current_index
|
||||
tabs.prev()
|
||||
|
||||
tabs.insert_tab(1, 999, gaps=True)
|
||||
|
||||
assert tabs.current_index == 0
|
||||
tabs.next()
|
||||
assert tabs.current_index == 2
|
||||
tabs.prev()
|
||||
assert tabs.current_index == 0
|
||||
|
||||
def test_set_current():
|
||||
DummyTab.reset()
|
||||
tabs = Tabs()
|
||||
dummy = DummyTab()
|
||||
dummy2 = DummyTab()
|
||||
dummy3 = DummyTab()
|
||||
tabs.append(dummy)
|
||||
tabs.append(dummy2)
|
||||
tabs.append(dummy3)
|
||||
|
||||
assert tabs.current_tab is dummy
|
||||
tabs.set_current_index(2)
|
||||
assert tabs.current_tab is dummy3
|
||||
tabs.set_current_tab(dummy2)
|
||||
assert tabs.current_tab is dummy2
|
||||
|
Loading…
Reference in a new issue