def test_resize_window1(self): with mocks.mocked_up_actual_fe() as fe: fe.split_window(window.Window(fe)) fe.split_window(window.Window(fe)) fe.balance_windows() self.assertEqual([w.height for w in fe.windows], [8, 8, 8]) fe.set_active(1) self.assertEqual(fe.resize_current_window(1), 1) self.assertEqual([w.height for w in fe.windows], [8, 9, 7]) self.assertEqual([w.y for w in fe.windows], [0, 8, 17]) self.assertEqual(fe.resize_current_window(5), 5) self.assertEqual([w.height for w in fe.windows], [7, 14, 3]) self.assertEqual([w.y for w in fe.windows], [0, 7, 21])
def test_window_management_1(self): with mocks.mocked_up_actual_fe() as fe: fe.split_window(window.Window(fe)) fe.split_window(window.Window(fe)) fe.context.status = fe.windows[fe.output].window self.assertRaises(Exception, lambda: fe.delete_current_window()) fe.context.status = None fe.delete_other_windows() self.assertEqual(len(fe.windows), 1) self.assertEqual(fe.output, 0)
def test_resize_window_noresize(self): with mocks.mocked_up_actual_fe() as fe: fe.split_window(window.Window(fe)) fe.windows[0].window.noresize = True self.assertEqual(fe.resize_current_window(1), 0) self.assertEqual([w.height for w in fe.windows], [12, 12]) self.assertEqual([w.y for w in fe.windows], [0, 12])
def test_resize_window0(self): with mocks.mocked_up_actual_fe() as fe: fe.split_window(window.Window(fe)) self.assertEqual([w.height for w in fe.windows], [12, 12]) fe.set_active(1) self.assertEqual(fe.resize_current_window(1), 1) self.assertEqual([w.height for w in fe.windows], [11, 13]) self.assertEqual([w.y for w in fe.windows], [0, 11])
def test_resize_window(self): with mocks.mocked_up_actual_fe() as fe: self.assertEqual(fe.maxy, 24) self.assertEqual([w.height for w in fe.windows], [24]) self.assertEqual([w.y for w in fe.windows], [0]) self.assertEqual(fe.resize_current_window(10), 0) self.assertEqual([w.height for w in fe.windows], [24]) self.assertEqual(fe.resize_current_window(-10), 0) self.assertEqual([w.height for w in fe.windows], [24]) fe.split_window(window.Window(fe)) self.assertEqual([w.height for w in fe.windows], [12, 12]) self.assertEqual([w.y for w in fe.windows], [0, 12]) self.assertEqual(fe.resize_current_window(1), 1) self.assertEqual([w.height for w in fe.windows], [13, 11]) self.assertEqual([w.y for w in fe.windows], [0, 13]) fe.set_active(1) self.assertEqual(fe.resize_current_window(1), 1) self.assertEqual([w.height for w in fe.windows], [12, 12]) self.assertEqual([w.y for w in fe.windows], [0, 12]) self.assertEqual(fe.resize_current_window(1), 1) self.assertEqual([w.height for w in fe.windows], [11, 13]) self.assertEqual([w.y for w in fe.windows], [0, 11]) self.assertEqual(fe.resize_current_window(-1), -1) self.assertEqual([w.height for w in fe.windows], [12, 12]) self.assertEqual([w.y for w in fe.windows], [0, 12]) fe.set_active(0) self.assertEqual(fe.resize_current_window(-1), -1) self.assertEqual([w.height for w in fe.windows], [11, 13]) self.assertEqual([w.y for w in fe.windows], [0, 11]) self.assertEqual(fe.resize_current_window(1), 1) fe.split_window(window.Window(fe)) fe.split_window(window.Window(fe)) fe.balance_windows() self.assertEqual([w.height for w in fe.windows], [6, 6, 6, 6]) self.assertEqual([w.y for w in fe.windows], [0, 6, 12, 18]) self.assertEqual(fe.resize_current_window(10), 9) self.assertEqual([w.height for w in fe.windows], [15, 3, 3, 3]) self.assertEqual([w.y for w in fe.windows], [0, 15, 18, 21]) fe.set_active(3) self.assertEqual(fe.resize_current_window(5), 5) self.assertEqual([w.height for w in fe.windows], [10, 3, 3, 8]) self.assertEqual([w.y for w in fe.windows], [0, 10, 13, 16])
def test_set_cheatsheet(self): w = window.Window(None) c = [] w.set_cheatsheet(c) self.assertIs(w.cheatsheet, c) self.assertIs(w._normal_cheatsheet, c) k = keymap.Keymap() k.set_cheatsheet(['bar']) w.maybe_install_cheatsheet(k) self.assertEqual(w.cheatsheet, ['bar'])
def test_window_management_3(self): with mocks.mocked_up_actual_fe() as fe: fe.split_window(window.Window(fe)) self.assertEqual(len(fe.windows), 2) fe.split_window(window.Window(fe)) self.assertEqual([w.height for w in fe.windows], [6, 6, 12]) fe.delete_window(1) self.assertEqual([w.height for w in fe.windows], [12, 12]) fe.delete_window(0) self.assertEqual(fe.windows[0].height, 24) fe.split_window(window.Window(fe)) fe.split_window(window.Window(fe)) fe.set_active(2) fe.split_window(window.Window(fe)) self.assertEqual([w.height for w in fe.windows], [6, 6, 6, 6]) fe.windows[1].window.noresize = True fe.delete_window(0) self.assertEqual([w.height for w in fe.windows], [6, 12, 6]) fe.delete_window(1) self.assertEqual([w.height for w in fe.windows], [6, 18]) self.assertRaises(Exception, lambda: fe.delete_window(1)) self.assertEqual([w.height for w in fe.windows], [6, 18]) fe.set_active(1) fe.windows[0].window.noactive = True fe.switch_window(1) self.assertEqual(fe.output, 1) fe.delete_window(0) self.assertEqual(fe.windows[0].height, 24)
def test_window_management_4(self): with mocks.mocked_up_actual_fe() as fe: fe.split_window(window.Window(fe)) self.assertEqual([w.height for w in fe.windows], [12, 12]) fe.popup_window(window.Window(fe), 1, fe.windows[0].window, True) self.assertEqual([w.height for w in fe.windows], [11, 1, 12]) fe.set_active(0) fe.delete_other_windows() self.assertEqual([w.height for w in fe.windows], [24]) fe.split_window(window.Window(fe)) fe.split_window(window.Window(fe)) self.assertEqual([w.height for w in fe.windows], [6, 6, 12]) fe.windows[1].window.noactive = True self.assertEqual(fe.output, 0) fe.delete_current_window() self.assertEqual(fe.output, 1) fe.delete_window(0) self.assertEqual([w.height for w in fe.windows], [24])
def test_window_management_2(self): with mocks.mocked_up_actual_fe() as fe: # popup a window fe.popup_window(window.Window(fe), 1, fe.windows[0].window) self.assertEqual(len(fe.windows), 2) self.assertEqual(fe.output, 1) # popup one over that fe.popup_window(window.Window(fe), 1, fe.windows[1].window) self.assertEqual(len(fe.windows), 2) self.assertEqual(fe.output, 1) # should bring the old popup back fe.delete_current_window() # switches back to the original indow self.assertEqual(fe.output, 0) self.assertEqual(len(fe.windows), 2) fe.set_active(1) fe.delete_current_window() # should take care of that self.assertEqual(fe.output, 0) self.assertEqual(len(fe.windows), 1)
def test_misc(self): called = False def destroy_cb(): nonlocal called called = True with mocks.mocked_up_actual_fe_window( lambda fe: window.Window(fe, destroy=destroy_cb)) as w: self.assertEqual(w.focus(), True) w.destroy() self.assertEqual(called, True) self.assertEqual(w.title(), 'Window') self.assertEqual(w.modeline(), ( [(set(), 'Window')], [({'right'}, '1')]))
def test_window_management_0(self): with mocks.mocked_up_actual_fe() as fe: self.assertEqual(fe.maxy, 24) fe.split_window(window.Window(fe), False) self.assertEqual(fe.input, 0) fe.delete_current_window() self.assertEqual(fe.input, 0) fe.split_window(window.Window(fe), True) self.assertEqual(fe.input, 1) self.assertEqual(len(fe.windows), 2) fe.split_window(window.Window(fe)) self.assertEqual(len(fe.windows), 3) fe.split_window(window.Window(fe)) self.assertEqual(len(fe.windows), 4) self.assertRaises(Exception, lambda: fe.split_window(window.Window(fe))) fe.delete_current_window() self.assertEqual(len(fe.windows), 3) fe.delete_other_windows() self.assertEqual(len(fe.windows), 1) self.assertRaises( Exception, lambda: fe.delete_window_window(fe.windows[0].window)) # would raise if it actually tried to delete anything fe.delete_window_window(window.Window(fe))
def test_balance_windows(self): with mocks.mocked_up_actual_fe() as fe: fe.balance_windows() self.assertEqual([w.height for w in fe.windows], [24]) fe.split_window(window.Window(fe)) fe.split_window(window.Window(fe)) self.assertEqual([w.height for w in fe.windows], [6, 6, 12]) fe.balance_windows() self.assertEqual([w.height for w in fe.windows], [8, 8, 8]) fe.split_window(window.Window(fe)) fe.balance_windows() self.assertEqual([w.height for w in fe.windows], [6, 6, 6, 6]) fe.split_window(window.Window(fe)) fe.balance_windows() self.assertEqual([w.height for w in fe.windows], [5, 5, 5, 5, 4]) fe.windows[0].window.noresize = True fe.context.status = fe.windows[0].window fe.set_active(1) fe.delete_other_windows() self.assertEqual([w.height for w in fe.windows], [5, 19]) fe.split_window(window.Window(fe)) fe.split_window(window.Window(fe)) self.assertEqual([w.height for w in fe.windows], [5, 4, 5, 10]) fe.balance_windows() self.assertEqual([w.height for w in fe.windows], [5, 7, 6, 6])
def test_mode(self): class AMode: cheatsheet = ['foo'] w = window.Window(None, modes=[AMode()]) self.assertEqual(w.cheatsheet[-1], 'foo')
def test_init(self): w = window.Window(mocks.FE()) w.renderer = mocks.Renderer() w.cursor = object() x = window.Window(mocks.FE(), prototype=w) self.assertIs(w.cursor, x.cursor)