Exemplo n.º 1
0
    def assertRoundtrip(self, diagram):
        (before, ) = [terminal_dsl.parse_term_state(x)[1]
                      for x in terminal_dsl.divide_term_states(diagram)]
        with UndoScenario(before) as t:
            UndoScenario.initialize(t, before)
            after = terminal_dsl.TerminalState.from_tmux_pane(t)

        self.assertEqual(before, after, before.visible_diff(after))
Exemplo n.º 2
0
 def test_parse_term_state(self):
     s = """
     +------+
     +------+
     |a-a-a-|
     |b-b-b-|
     |@     |
     +------+"""
     self.assertEqual(parse_term_state(s), ('', TerminalState(
         lines=['a-a-a-', 'b-b-b-', ''],
         cursor_line=2,
         cursor_offset=0,
         width=6,
         height=3,
         history_height=0)))
Exemplo n.º 3
0
 def assert_undo(self, diagram, slow=False):
     states = [terminal_dsl.parse_term_state(x)[1]
               for x in terminal_dsl.divide_term_states(diagram)]
     if len(states) < 2:
         raise ValueError("Diagram has only one state")
     with UndoScenario(states[0]) as t:
         UndoScenario.initialize(t, states[0])
         if slow: time.sleep(1)
         for before, after in zip(states[:-1], states[1:]):
             self.resize(before, after, t)
             if slow: time.sleep(1)
             if self.should_undo(before, after):
                 restore(t)
                 if slow: time.sleep(1)
             actual = terminal_dsl.TerminalState.from_tmux_pane(t)
             self.assertEqual(after, actual, after.visible_diff(actual))
             self.assertEqual(tmux.all_contents(t),
                              rewrite.linesplit(after.lines, after.width))