예제 #1
0
def test_end_container_at_depth_zero_fails():
    buf = BufferTree()
    buf.start_container()
    buf.add_scalar_value(b'2')
    buf.end_container(b'1')
    with raises(ValueError):
        buf.end_container(b'0')
예제 #2
0
def test_reuse_with_scalars():
    buf = BufferTree()
    buf.add_scalar_value(b'1')
    buf.add_scalar_value(b'2')
    buf.add_scalar_value(b'34')
    assert_buffer(buf)  # drain resets the writer buffer
    buf.add_scalar_value(b'5')
    buf.add_scalar_value(b'6')
    buf.add_scalar_value(b'78')
    assert_buffer(buf, b'5678')
예제 #3
0
def test_end_container_at_depth_zero_fails():
    buf = BufferTree()
    buf.start_container()
    buf.add_scalar_value(b'2')
    buf.end_container(b'1')
    with raises(ValueError):
        buf.end_container(b'0')
예제 #4
0
def test_reuse_with_scalars():
    buf = BufferTree()
    buf.add_scalar_value(b'1')
    buf.add_scalar_value(b'2')
    buf.add_scalar_value(b'34')
    assert_buffer(buf)  # drain resets the writer buffer
    buf.add_scalar_value(b'5')
    buf.add_scalar_value(b'6')
    buf.add_scalar_value(b'78')
    assert_buffer(buf, b'5678')
예제 #5
0
def test_container_length():
    buf = BufferTree()
    buf.start_container()
    buf.add_scalar_value(b'234')
    assert 3 == buf.current_container_length
    buf.end_container(b'1')
    assert 4 == buf.current_container_length
    assert_buffer(buf)
예제 #6
0
def test_drain_with_active_container_fails():
    buf = BufferTree()
    buf.start_container()
    buf.add_scalar_value(b'1')
    with raises(ValueError):
        for partial in buf.drain():
            pass
예제 #7
0
def test_container_length():
    buf = BufferTree()
    buf.start_container()
    buf.add_scalar_value(b'234')
    assert 3 ==  buf.current_container_length
    buf.end_container(b'1')
    assert 4 == buf.current_container_length
    assert_buffer(buf)
예제 #8
0
def test_drain_with_active_container_fails():
    buf = BufferTree()
    buf.start_container()
    buf.add_scalar_value(b'1')
    with raises(ValueError):
        for partial in buf.drain():
            pass
예제 #9
0
def test_reuse_with_containers():
    buf = BufferTree()
    buf.start_container()
    buf.add_scalar_value(b'2')
    buf.start_container()
    buf.add_scalar_value(b'4')
    buf.end_container(b'3')
    buf.end_container(b'1')
    assert_buffer(buf)
    buf.start_container()
    buf.add_scalar_value(b'78')
    buf.end_container(b'56')
    assert_buffer(buf, b'5678')
예제 #10
0
def test_scalar_after_empty_container():
    buf = BufferTree()
    buf.start_container()
    buf.add_scalar_value(b'2')
    buf.start_container()
    buf.end_container(b'3')
    buf.add_scalar_value(b'4')
    buf.end_container(b'1')
    assert_buffer(buf)
예제 #11
0
def test_nested_containers_at_same_start():
    buf = BufferTree()
    buf.start_container()
    buf.start_container()
    buf.start_container()
    buf.add_scalar_value(b'4')
    buf.end_container(b'3')
    buf.end_container(b'2')
    buf.end_container(b'1')
    assert_buffer(buf)
예제 #12
0
def test_container():
    buf = BufferTree()
    buf.start_container()
    buf.add_scalar_value(b'34')
    buf.end_container(b'12')
    assert_buffer(buf)
예제 #13
0
def test_scalars():
    buf = BufferTree()
    buf.add_scalar_value(b'1')
    buf.add_scalar_value(b'2')
    buf.add_scalar_value(b'34')
    assert_buffer(buf)
예제 #14
0
def test_scalars():
    buf = BufferTree()
    buf.add_scalar_value(b'1')
    buf.add_scalar_value(b'2')
    buf.add_scalar_value(b'34')
    assert_buffer(buf)
예제 #15
0
def test_container():
    buf = BufferTree()
    buf.start_container()
    buf.add_scalar_value(b'34')
    buf.end_container(b'12')
    assert_buffer(buf)
예제 #16
0
def test_scalar_after_empty_container():
    buf = BufferTree()
    buf.start_container()
    buf.add_scalar_value(b'2')
    buf.start_container()
    buf.end_container(b'3')
    buf.add_scalar_value(b'4')
    buf.end_container(b'1')
    assert_buffer(buf)
예제 #17
0
def test_nested_containers_at_same_start():
    buf = BufferTree()
    buf.start_container()
    buf.start_container()
    buf.start_container()
    buf.add_scalar_value(b'4')
    buf.end_container(b'3')
    buf.end_container(b'2')
    buf.end_container(b'1')
    assert_buffer(buf)
예제 #18
0
def new_writer():
    out = BytesIO()
    return out, blocking_writer(_raw_binary_writer(BufferTree()), out)
예제 #19
0
def test_reuse_with_containers():
    buf = BufferTree()
    buf.start_container()
    buf.add_scalar_value(b'2')
    buf.start_container()
    buf.add_scalar_value(b'4')
    buf.end_container(b'3')
    buf.end_container(b'1')
    assert_buffer(buf)
    buf.start_container()
    buf.add_scalar_value(b'78')
    buf.end_container(b'56')
    assert_buffer(buf, b'5678')