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))
def test_linesplit(self): self.assertEqual(rewrite.linesplit(["1234", "123456"], 4), ["1234", "1234", "56"]) self.assertEqual(rewrite.linesplit(["1234", "123456"], 10), ["1234", "123456"])