예제 #1
0
def test_undo_pen_change(patched_turtle):
    expected_report = """\
create_line
    0
    0
    50
    0
    fill='black'
    pensize=1
"""

    t = MockTurtle()
    t.forward(50)
    t.right(90)
    t.forward(20)
    t.pensize(5)
    t.undo()
    t.undo()
    report = t.report

    assert report == expected_report.splitlines()
예제 #2
0
def test_clearscreen(patched_turtle):
    expected_report = """\
create_line
    0
    0
    20
    0
    fill='black'
    pensize=1"""

    t = MockTurtle()
    for i in range(4):
        t.pensize(i + 1)  # force new line
        t.fd(100)
        t.left(90)
    t.getscreen().clear()

    t2 = MockTurtle()
    t2.fd(20)
    report = t2.report

    assert report == expected_report.splitlines()
    assert not any(item['deleted'] for item in t.getscreen().cv.items)
예제 #3
0
def test_stamp_while_filling(patched_turtle):
    expected_report = """\
create_polygon
    0
    0
    40
    0
    40
    40
    0
    40
    fill='#008000'
    outline=''
create_line
    0
    0
    40
    0
    fill='black'
    pensize=4
create_line
    40
    0
    40
    40
    fill='black'
    pensize=4
create_line
    40
    40
    0
    40
    fill='black'
    pensize=4
create_polygon
    40
    0
    45
    -9
    40
    -7
    35
    -9
    fill='#008000'
    outline=''
create_line
    40
    0
    45
    -9
    fill='black'
    pensize=1
create_line
    45
    -9
    40
    -7
    fill='black'
    pensize=1
create_line
    40
    -7
    35
    -9
    fill='black'
    pensize=1
create_line
    35
    -9
    40
    0
    fill='black'
    pensize=1
"""

    t = MockTurtle()
    t.pensize(4)
    t.fillcolor('green')
    t.begin_fill()
    t.forward(40)
    t.right(90)
    t.stamp()
    t.forward(40)
    t.right(90)
    t.forward(40)
    t.end_fill()
    report = t.report

    assert report == expected_report.splitlines()