def test_read_string(self): import snipe.prompt as prompt with mocks.mocked_up_actual_fe(window.Window) as fe: i = fe.windows[0].window.read_string( ': ', validate=lambda x: x == 'foo') i.send(None) self.assertIsInstance(fe.windows[1].window, prompt.ShortPrompt) with self.assertRaises(util.SnipeException): fe.windows[1].window.callback('bar') fe.windows[1].window.callback('foo') try: while True: i.send(None) except StopIteration as stop: val = stop.value self.assertEquals(val, 'foo') with mocks.mocked_up_actual_fe(window.Window) as fe: i = fe.windows[0].window.read_string(': ', height=5) i.send(None) self.assertIsInstance(fe.windows[1].window, prompt.LongPrompt) fe.delete_window(1) with self.assertRaises(Exception): while True: i.send(None)
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_stop(self): with mocks.mocked_up_actual_fe(window.Window) as fe: d = {'called': False} fe.sigtstp = lambda *args: d.__setitem__('called', True) self.assertFalse(d['called']) fe.windows[0].window.stop() self.assertTrue(d['called'])
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_show(self): with mocks.mocked_up_actual_fe(window.Window) as fe: self.assertEquals(len(fe.windows), 1) fe.windows[0].window.show('foo') self.assertEquals(len(fe.windows), 2) self.assertEquals( ''.join( str(chunk) for (mark, chunk) in fe.windows[1].window.view(0)), 'foo')
def test_read_filename(self): with mocks.mocked_up_actual_fe(window.Window) as fe: i = fe.windows[0].window.read_filename(': ') i.send(None) fe.windows[1].window.callback('foo') try: while True: i.send(None) except StopIteration as stop: val = stop.value self.assertEquals(val, 'foo')
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_read_keyseq(self): import snipe.prompt as prompt with mocks.mocked_up_actual_fe(window.Window) as fe: i = fe.windows[0].window.read_keyseq( ': ', keymap=fe.windows[0].window.keymap) i.send(None) self.assertIsInstance(fe.windows[1].window, prompt.KeySeqPrompt) fe.windows[1].window.callback('foo') try: while True: i.send(None) except StopIteration as stop: val = stop.value self.assertEquals(val, 'foo')
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_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_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_other(self): import snipe.editor as editor import snipe.messager as messager import snipe.repl as repl with mocks.mocked_up_actual_fe(window.Window) as fe: self.assertEquals(len(fe.windows), 1) fe.windows[0].window.split_window() self.assertEquals(len(fe.windows), 2) fe.windows[0].window.delete_window() self.assertEquals(len(fe.windows), 1) fe.windows[0].window.split_window() self.assertEquals(len(fe.windows), 2) fe.windows[0].window.delete_other_windows() self.assertEquals(len(fe.windows), 1) fe.windows[0].window.split_window() self.assertEquals(len(fe.windows), 2) self.assertEquals(fe.output, 0) fe.windows[0].window.other_window() self.assertEquals(fe.output, 1) fe.windows[0].window.delete_other_windows() self.assertEquals(len(fe.windows), 1) fe.windows[0].window.split_to_editor() self.assertEquals(len(fe.windows), 2) self.assertEquals(fe.output, 1) self.assertIsInstance(fe.windows[1].window, editor.Editor) fe.windows[1].window.delete_window() self.assertEquals(len(fe.windows), 1) self.assertEquals(len(fe.windows), 1) fe.windows[0].window.split_to_messager() self.assertEquals(len(fe.windows), 2) self.assertEquals(fe.output, 1) self.assertIsInstance(fe.windows[1].window, messager.Messager) fe.windows[1].window.delete_window() self.assertEquals(len(fe.windows), 1) self.assertEquals(len(fe.windows), 1) fe.windows[0].window.split_to_repl() self.assertEquals(len(fe.windows), 2) self.assertEquals(fe.output, 1) self.assertIsInstance(fe.windows[1].window, repl.REPL) fe.windows[1].window.delete_window() self.assertEquals(len(fe.windows), 1)
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_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_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_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)