Esempio n. 1
0
 def test_search_interface(self):
     with mocks.mocked_up_actual_fe_window(window.Window) as w:
         self.assertRaises(NotImplementedError, lambda: w.find('foo'))
         self.assertRaises(NotImplementedError, lambda: w.match('foo'))
         self.assertRaises(NotImplementedError, w.beginning)
         self.assertRaises(NotImplementedError, w.end)
         self.assertEqual(w.make_mark(None), None)
Esempio n. 2
0
 def test_search_interface(self):
     with mocks.mocked_up_actual_fe_window(window.Window) as w:
         self.assertRaises(NotImplementedError, lambda: w.find('foo'))
         self.assertRaises(NotImplementedError, lambda: w.match('foo'))
         self.assertRaises(NotImplementedError, w.beginning)
         self.assertRaises(NotImplementedError, w.end)
         self.assertEqual(w.make_mark(None), None)
Esempio n. 3
0
 def test_quit(self):
     with mocks.mocked_up_actual_fe_window(window.Window) as w:
         loop = asyncio.get_event_loop()
         self.assertFalse(loop._stopping)
         w.quit()
         self.assertTrue(loop._stopping)
         loop.run_forever()
         self.assertFalse(loop._stopping)
Esempio n. 4
0
 def test_quit(self):
     with mocks.mocked_up_actual_fe_window(window.Window) as w:
         loop = asyncio.get_event_loop()
         self.assertFalse(loop._stopping)
         w.quit()
         self.assertTrue(loop._stopping)
         loop.run_forever()
         self.assertFalse(loop._stopping)
Esempio n. 5
0
    def test(self):
        with mocks.mocked_up_actual_fe_window(window.Window,
                                              window.StatusLine) as w:
            s = w.context.status
            self.assertEqual([
                Chunk([(('visible', ), ''), ((), 'Window'), (('right', ), '1'),
                       ((), 'You'), ((), '                 '), ((), 'be'),
                       ((), '                  '), ((), 'this'),
                       ((), '                '), (('bold', ), '^Z'),
                       ((), ' suspend'), ((), '\n'), ((), "shouldn't"),
                       ((), '           '), ((), 'seeing'),
                       ((), '              '), (('bold', ), '^X^C'),
                       ((), ' quit'), ((), '           '), (('bold', ), '?'),
                       ((), ' help'), ((), '\n')])
            ], [chunk for (mark, chunk) in s.view(0)])

            w.context.conf['set'] = {'cheatsheet': False}
            w.fe.resize_statuswindow()
            self.assertEqual([
                Chunk([
                    (('visible', ), ''),
                    ((), 'Window'),
                    (('right', ), '1'),
                ])
            ], [chunk for (mark, chunk) in s.view(0)])

            s.message('X' * 80)
            self.assertEqual([
                Chunk([
                    ({'visible'}, ''),
                    ({'fg:white', 'bg:red'}, '…' + ('X' * 77)),
                    ({'right'}, '1'),
                ])
            ], [chunk.tagsets() for (mark, chunk) in s.view(0)])

            # defensiveness time

            class W2(window.Window):
                def modeline(self):
                    return None, []

            s.clear()
            w.fe.split_window(W2(w.fe), True)

            self.assertEqual([[
                ({'visible'}, ''),
            ]], [chunk for (mark, chunk) in s.view(0)])

            w.fe.output = 99
            self.assertEqual([
                Chunk([
                    (('visible', ), ''),
                    ((), 'StatusLine'),
                    (('right', ), '1'),
                ])
            ], [chunk for (mark, chunk) in s.view(0)])
Esempio n. 6
0
    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')]))
Esempio n. 7
0
    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')]))
Esempio n. 8
0
    async def test_input_char(self):
        with mocks.mocked_up_actual_fe_window(window.Window) as w:
            w.fe.supervisor = await imbroglio.get_supervisor()
            save = []
            w.intermediate_action = (
                lambda keystroke=None: save.append(keystroke))
            with self.assertLogs(w.log.name, level='ERROR'):
                w.input_char('x')
            self.assertEqual(w.context._message, 'unknown command')
            w.keyerror_action = lambda k: save.append('E' + k)
            w.input_char('x')
            self.assertEqual(save, ['x', 'x', 'Ex'])

            w.keymap['y'] = lambda: save.append('y')
            w.input_char('y')
            self.assertEqual(save, ['x', 'x', 'Ex', 'y', 'y'])

            w.intermediate_action = None
            w.keymap['z'] = keymap.Keymap()
            w.keymap['z']['Z'] = lambda: save.append('z')
            w.input_char('z')
            w.input_char('Z')
            self.assertEqual(save, ['x', 'x', 'Ex', 'y', 'y', 'z'])

            async def key_action():
                save.append('0')
            w.keymap['0'] = key_action
            self.assertFalse(w.tasks)
            w.input_char('0')
            self.assertTrue(w.tasks)
            await w.tasks[0]
            self.assertEqual(save, ['x', 'x', 'Ex', 'y', 'y', 'z', '0'])

            w.keymap['1'] = lambda: {}[None]

            with self.assertLogs(w.log, logging.ERROR):
                w.input_char('1')

            async def key_raises():
                {}[None]
            w.keymap['2'] = key_raises
            w.input_char('2')
            with self.assertLogs(w.log, logging.ERROR):
                await w.tasks[0]
Esempio n. 9
0
    def test_input_char(self):
        with mocks.mocked_up_actual_fe_window(window.Window) as w:
            save = []
            w.intermediate_action = (
                lambda keystroke=None: save.append(keystroke))
            with self.assertLogs(w.log.name, level='ERROR'):
                w.input_char('x')
            self.assertEqual(w.context._message, 'unknown command')
            w.keyerror_action = lambda k: save.append('E' + k)
            w.input_char('x')
            self.assertEqual(save, ['x', 'x', 'Ex'])

            w.keymap['y'] = lambda: save.append('y')
            w.input_char('y')
            self.assertEqual(save, ['x', 'x', 'Ex', 'y', 'y'])

            w.intermediate_action = None
            w.keymap['z'] = keymap.Keymap()
            w.keymap['z']['Z'] = lambda: save.append('z')
            w.input_char('z')
            w.input_char('Z')
            self.assertEqual(save, ['x', 'x', 'Ex', 'y', 'y', 'z'])

            w.keymap['0'] = asyncio.coroutine(lambda: save.append('0'))
            self.assertFalse(w.tasks)
            w.input_char('0')
            self.assertTrue(w.tasks)
            loop = asyncio.get_event_loop()
            loop.run_until_complete(w.tasks[0])
            self.assertEqual(save, ['x', 'x', 'Ex', 'y', 'y', 'z', '0'])

            w.keymap['1'] = lambda: {}[None]

            with self.assertLogs(w.log, logging.ERROR):
                w.input_char('1')

            w.keymap['2'] = asyncio.coroutine(lambda: {}[None])
            w.input_char('2')
            with self.assertLogs(w.log, logging.ERROR):
                loop.run_until_complete(w.tasks[0])
Esempio n. 10
0
    def test_input_char(self):
        with mocks.mocked_up_actual_fe_window(window.Window) as w:
            save = []
            w.intermediate_action = (
                lambda keystroke=None: save.append(keystroke))
            with self.assertLogs(w.log.name, level='ERROR'):
                w.input_char('x')
            self.assertEqual(w.context._message, 'unknown command')
            w.keyerror_action = lambda k: save.append('E' + k)
            w.input_char('x')
            self.assertEqual(save, ['x', 'x', 'Ex'])

            w.keymap['y'] = lambda: save.append('y')
            w.input_char('y')
            self.assertEqual(save, ['x', 'x', 'Ex', 'y', 'y'])

            w.intermediate_action = None
            w.keymap['z'] = keymap.Keymap()
            w.keymap['z']['Z'] = lambda: save.append('z')
            w.input_char('z')
            w.input_char('Z')
            self.assertEqual(save, ['x', 'x', 'Ex', 'y', 'y', 'z'])

            w.keymap['0'] = asyncio.coroutine(lambda: save.append('0'))
            self.assertFalse(w.tasks)
            w.input_char('0')
            self.assertTrue(w.tasks)
            loop = asyncio.get_event_loop()
            loop.run_until_complete(w.tasks[0])
            self.assertEqual(save, ['x', 'x', 'Ex', 'y', 'y', 'z', '0'])

            w.keymap['1'] = lambda: {}[None]

            with self.assertLogs(w.log, logging.ERROR):
                w.input_char('1')

            w.keymap['2'] = asyncio.coroutine(lambda: {}[None])
            w.input_char('2')
            with self.assertLogs(w.log, logging.ERROR):
                loop.run_until_complete(w.tasks[0])
Esempio n. 11
0
    def test_input_char(self):
        with mocks.mocked_up_actual_fe_window(window.Window) as w:
            save = []
            w.intermediate_action = (
                lambda keystroke=None: save.append(keystroke))
            with self.assertLogs(w.log.name, level='ERROR'):
                w.input_char('x')
            self.assertEqual(w.context._message, 'unknown command')
            w.keyerror_action = lambda k: save.append('E' + k)
            w.input_char('x')
            self.assertEqual(save, ['x', 'x', 'Ex'])

            w.keymap['y'] = lambda: save.append('y')
            w.input_char('y')
            self.assertEqual(save, ['x', 'x', 'Ex', 'y', 'y'])

            w.intermediate_action = None
            w.keymap['z'] = keymap.Keymap()
            w.keymap['z']['Z'] = lambda: save.append('z')
            w.input_char('z')
            w.input_char('Z')
            self.assertEqual(save, ['x', 'x', 'Ex', 'y', 'y', 'z'])
Esempio n. 12
0
 def test_prototype_buf(self):
     with mocks.mocked_up_actual_fe_window(repl.REPL) as w:
         w.split_window()
         for x in w.fe.windows:
             self.assertIs(w.state, x.window.state)
Esempio n. 13
0
 def test_enlarge_windows(self):
     with mocks.mocked_up_actual_fe_window(window.Window) as w:
         w.split_window()
         w.enlarge_window()
         self.assertEqual([w.height for w in w.fe.windows], [13, 11])
Esempio n. 14
0
 def test_balance_windows(self):
     with mocks.mocked_up_actual_fe_window(window.Window) as w:
         w.split_window()
         w.split_window()
         w.balance_windows()
         self.assertEqual([w.height for w in w.fe.windows], [8, 8, 8])
Esempio n. 15
0
 def test_quit(self):
     with mocks.mocked_up_actual_fe_window(window.Window) as w:
         self.assertFalse(w.fe.quit)
         w.quit()
         self.assertTrue(w.fe.quit)
Esempio n. 16
0
    def test(self):
        with mocks.mocked_up_actual_fe_window(
                window.Window, window.StatusLine) as w:
            s = w.context.status
            self.assertEqual([Chunk([
                (('visible',), ''),
                ((), 'Window'),
                (('right',), '1'),
                ((), 'You'),
                ((), '                 '),
                ((), 'be'),
                ((), '                  '),
                ((), 'this'),
                ((), '                '),
                (('bold',), '^Z'),
                ((), ' suspend'),
                ((), '\n'),
                ((), "shouldn't"),
                ((), '           '),
                ((), 'seeing'),
                ((), '              '),
                (('bold',), '^X^C'),
                ((), ' quit'),
                ((), '           '),
                (('bold',), '?'),
                ((), ' help'),
                ((), '\n')
                ])], [chunk for (mark, chunk) in s.view(0)])

            w.context.conf['set'] = {'cheatsheet': False}
            w.fe.resize_statuswindow()
            self.assertEqual([Chunk([
                (('visible',), ''),
                ((), 'Window'),
                (('right',), '1'),
                ])], [chunk for (mark, chunk) in s.view(0)])

            s.message('X' * 80)
            self.assertEqual([Chunk([
                ({'visible'}, ''),
                ({'fg:white', 'bg:red'}, '…' + ('X' * 77)),
                ({'right'}, '1'),
                ])], [chunk.tagsets() for (mark, chunk) in s.view(0)])

            # defensiveness time

            class W2(window.Window):
                def modeline(self):
                    return None, []

            s.clear()
            w.fe.split_window(W2(w.fe), True)

            self.assertEqual([[
                ({'visible'}, ''),
                ]], [chunk for (mark, chunk) in s.view(0)])

            w.fe.output = 99
            self.assertEqual([Chunk([
                (('visible',), ''),
                ((), 'StatusLine'),
                (('right',), '1'),
                ])], [chunk for (mark, chunk) in s.view(0)])
Esempio n. 17
0
 def test_prototype(self):
     with mocks.mocked_up_actual_fe_window(snipe.editor.Viewer) as w:
         w.split_window()
         for x in w.fe.windows:
             self.assertIs(w.buf, x.window.buf)
Esempio n. 18
0
 def test_balance_windows(self):
     with mocks.mocked_up_actual_fe_window(window.Window) as w:
         w.split_window()
         w.split_window()
         w.balance_windows()
         self.assertEqual([w.height for w in w.fe.windows], [8, 8, 8])
Esempio n. 19
0
 def test_enlarge_windows(self):
     with mocks.mocked_up_actual_fe_window(window.Window) as w:
         w.split_window()
         w.enlarge_window()
         self.assertEqual([w.height for w in w.fe.windows], [13, 11])