Ejemplo n.º 1
0
def test_stack_maxsize():

    s = Stack(maxsize=10)

    [s.add("action {0:d}".format(i)) for i in xrange(20)]

    assert len(s.get_stack()) == 10
    assert s.get_current() == "action 19"
    assert s.can_undo() == True
    assert s.can_redo() == False

    [s.undo() for _ in xrange(10)]
    assert s.can_undo() == False
    assert s.can_redo() == True
Ejemplo n.º 2
0
def test_stack1():
    s = Stack()

    assert s.get_current() == None
    assert s.can_undo() == False
    assert s.can_redo() == False

    s.add("action 0")

    assert s.can_undo() == True
    assert s.can_redo() == False

    s.add("action 1")
    s.add("action 2")

    assert s.get_current() == "action 2"
    assert s.can_undo() == True
    assert s.can_redo() == False

    s.undo()

    assert s.get_current() == "action 1"
    assert s.can_undo() == True
    assert s.can_redo() == True

    s.redo()

    assert s.get_current() == "action 2"
    assert s.can_undo() == True
    assert s.can_redo() == False

    s.undo()
    s.undo()
    s.add("action 1 bis")

    assert s.get_current() == "action 1 bis"
    assert s.can_undo() == True
    assert s.can_redo() == False

    s.undo()
    assert s.get_current() == "action 0"
    assert s.can_undo() == True
    assert s.can_redo() == True
Ejemplo n.º 3
0
 def __init__(self, loader):
     self.loader = loader
     self.processor = Processor(loader)
     # Create the action stack.
     self.stack = Stack(maxsize=20)