def test_model_commit_clears_redo_log(self):
        model = CanvasModel(self.eb)
        model.commit([ Insert(R(1, 1, 1, 1)) ])
        model.commit([ Insert(R(2, 2, 2, 2)) ])

        model.undo()

        model.commit([ Insert(R(3, 3, 3, 3)) ])  # this one clears redo log
        assert model._elems == [ R(1, 1, 1, 1), R(3, 3, 3, 3) ]
        assert model._changelog == [
            [Insert(R(1, 1, 1, 1))],
            [Insert(R(3, 3, 3, 3))]
        ]
        assert model._redolog == []
 def test_model_one_undo_redo(self):
     model = CanvasModel(self.eb)
     model.commit([ Insert(R(1, 1, 1, 1)) ])
     assert model._elems == [ R(1, 1, 1, 1) ]
     assert model._changelog == [ [ Insert(R(1, 1, 1, 1)) ] ]
     assert model._redolog == []
     model.undo()
     assert model._elems == []
     assert model._changelog == []
     assert model._redolog == [ [ Insert(R(1, 1, 1, 1)) ] ]
     model.redo()
     assert model._elems == [ R(1, 1, 1, 1) ]
     assert model._changelog == [ [ Insert(R(1, 1, 1, 1)) ] ]
     assert model._redolog == []