Пример #1
0
def test_tokenstream_expect():
    # expect
    s = TokenStream(iter((Token('a', 1), Token('b', 2), Token('c', 3))))
    assert s.expect('a') == Token('a', 1)
    assert s.expect('b', 2) == Token('b', 2)
    pytest.raises(AssertionError, s.expect, 'e')
    pytest.raises(AssertionError, s.expect, 'c', 5)
Пример #2
0
def test_tokenstream_debug():
    stream = StringIO.StringIO()

    _original_stdout = sys.stdout
    sys.stdout = stream

    try:
        s = TokenStream(iter((Token('a', 1), )))
        s.debug()
        assert stream.getvalue() == "Token(type='a', value=1)\n"
    finally:
        sys.stdout = _original_stdout
Пример #3
0
def test_tokenstream_look_push():
    # look, push
    s = TokenStream(iter((Token('a', 1), Token('b', 2), Token('c', 3))))
    assert s.current == Token('a', 1)
    assert s.look() == Token('b', 2)
    s.next()
    assert s.look() == Token('c', 3)
    s.push(Token('b', 2))
    assert s.look() == Token('b', 2)
    s.push(Token('e', 4), current=True)
    assert s.current == Token('e', 4)
    assert s.look() == Token('b', 2)
Пример #4
0
def test_tokenstream_test_shift():
    # test
    s = TokenStream(iter((Token('a', 1), Token('b', 2), Token('c', 3))))
    assert s.test('a')
    s.next()
    assert s.test('b', 2)

    # shift
    assert s.current == Token('b', 2)
    s.shift(Token('f', 5))
    assert s.current == Token('f', 5)
    s.next()
    assert s.current == Token('b', 2)
Пример #5
0
def test_tokenstream_skip_next():
    # skip, next
    s = TokenStream(iter((Token('a', 1), Token('b', 2), Token('c', 3))))
    s.skip(1)
    assert s.current == Token('b', 2)
    s.next()
    assert s.current == Token('c', 3)
    s.push(Token('e', 4))
    assert s.current == Token('c', 3)
    s.next()
    assert s.current == Token('e', 4)
    s.next()
    assert s.current == Token('eof', None)
Пример #6
0
def test_tokenstream():
    s = TokenStream(iter((Token('a', 1), Token('b', 2), Token('c', 3))))
    assert s.current == Token('a', 1)
Пример #7
0
def test_tokenstream_eof():
    # eof
    s = TokenStream(iter((Token('a', 1), Token('b', 2), Token('c', 3))))
    assert not s.eof
    list(s)
    assert s.eof