Example #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))
Example #2
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))