Example #1
0
def test_var_size_buffer_marshal_no_sizer():
    class MyOneMarshal(Marshal):
        def write_to_stream(self, obj, stream, context=EMPTY_CONTEXT):
            stream.write(b"\x01")

        def create_from_stream(self,
                               stream,
                               context=EMPTY_CONTEXT,
                               *args,
                               **kwargs):
            return ord(stream.read(1))

    marshal = VarSizeBufferMarshal(MyOneMarshal())
    assert marshal.write_to_string(b"ad") == b"\x01ad"
    assert marshal.create_from_string(b"\x03abcadsfadsf") == b"abc"
Example #2
0
def test_var_size_buffer_marshal():
    marshal = VarSizeBufferMarshal(UBInt8Marshal)
    assert marshal.sizeof(b"asd") == 4
    assert marshal.min_max_sizeof() == MinMax(1, 256)
    assert marshal.write_to_string(b"ad") == b"\x02ad"
    assert marshal.create_from_string(b"\x03abcadsfadsf") == b"abc"