Example #1
0
    def test_undo_multiple_input_lines(self):
        """Test udoing a line of a multiple lines command in ipython."""
        with ActualUndo(80, 30) as t:

            # type some commands
            tmux.send_command(t, 'ipy', prompt=IPyPrompt.in_formatted(1))
            tmux.send_command(t, 'def foo():',
                              prompt=IPyPrompt.new_l_formatted())
            tmux.send_command(t, 'print "hi"',
                              prompt=IPyPrompt.new_l_formatted())
            tmux.send_command(t, ' ', prompt=IPyPrompt.in_formatted(2))
            tmux.send_command(t, 'foo()', prompt=IPyPrompt.in_formatted(3))
            output = tmux.visible_without_formatting(t)
            lines = [IPyPrompt.in_prompt(1) + ' def foo():',
                     IPyPrompt.new_l_prompt() + '     print "hi"',
                     IPyPrompt.new_l_prompt() + '',
                     IPyPrompt.in_prompt(2) + ' foo()',
                     'hi',
                     IPyPrompt.in_prompt(3)]
            self.assertEqual(output[-6:], lines)

            # undo
            tmux.send_command(t, 'undo', prompt=IPyPrompt.in_formatted(2))
            output = tmux.visible_without_formatting(t)
            self.assertEqual(output[-4:], lines[:3] + [IPyPrompt.in_prompt(2)])

            # undo again
            tmux.send_command(t, 'undo', prompt=IPyPrompt.new_l_formatted())
            output = tmux.visible_without_formatting(t)
            self.assertEqual(output[-3:],
                             lines[:2] + [IPyPrompt.new_l_prompt()])
Example #2
0
    def test_undo_simple(self):
        """Test undoing one liner command in ipython."""
        with ActualUndo(80, 30) as t:

            # type some commands
            tmux.send_command(t, 'ipy', prompt=IPyPrompt.in_formatted(1))
            tmux.send_command(t, 'a = 1', prompt=IPyPrompt.in_formatted(2))
            tmux.send_command(t, 'a', prompt=IPyPrompt.in_formatted(3))
            output = tmux.visible_without_formatting(t)
            lines = [IPyPrompt.in_prompt(1) + ' a = 1',
                     IPyPrompt.in_prompt(2) + ' a',
                     IPyPrompt.out_prompt(2) + ' 1',
                     IPyPrompt.in_prompt(3)]
            self.assertEqual(output[-4:], lines)

            # undo
            tmux.send_command(t, 'undo', prompt=IPyPrompt.in_formatted(2))
            output = tmux.visible_without_formatting(t)
            self.assertEqual(output[-2:],
                             lines[:1] + [IPyPrompt.in_prompt(2)])