def test_long_char_string(): orig_len = 65532 to_serialize = ''.join(itertools.repeat('a', orig_len)) ser = t.LongCharacterString(to_serialize).serialize() assert len(ser) == orig_len + len(orig_len.to_bytes(2, 'little')) deserialize_extra = b'1234' to_deserialize = orig_len.to_bytes(2, 'little') + b''.join( itertools.repeat(b'b', orig_len)) + deserialize_extra des, rest = t.LongCharacterString.deserialize(to_deserialize) assert len(des) == orig_len assert rest == deserialize_extra
def test_long_char_string(): orig_len = 65532 to_serialize = "".join(itertools.repeat("a", orig_len)) ser = t.LongCharacterString(to_serialize).serialize() assert len(ser) == orig_len + len(orig_len.to_bytes(2, "little")) deserialize_extra = b"1234" to_deserialize = (orig_len.to_bytes(2, "little") + b"".join(itertools.repeat(b"b", orig_len)) + deserialize_extra) des, rest = t.LongCharacterString.deserialize(to_deserialize) assert len(des) == orig_len assert rest == deserialize_extra
def test_long_char_string_too_long(): to_serialize = "".join(itertools.repeat("a", 65535)) with pytest.raises(ValueError): t.LongCharacterString(to_serialize).serialize()