),
b'\x30\x00\x00\x00\x03\x01\x03\x07'
),
+ (
+ tags.TaggedObject(
+ tag = tags.LIST,
+ instance = [
+ tags.TaggedObject(tag = tags.UINT8, instance = 9),
+ tags.TaggedObject(tag = tags.UINT8, instance = 22),
+ tags.TaggedObject(tag = tags.UINT8, instance = 36),
+ ],
+ ),
+ b'\x31\x03\x00\x00\x00\x03\x09\x16\x24',
+ ),
+ (
+ tags.TaggedObject(
+ tag = tags.OBJECT,
+ instance = [
+ (
+ tags.TaggedObject(tag = tags.UTF8, instance = 'foo'),
+ tags.TaggedObject(tag = tags.UTF8, instance = 'bar'),
+ ),
+ (
+ tags.TaggedObject(tag = tags.UTF8, instance = 'baz'),
+ tags.TaggedObject(tag = tags.UINT8, instance = 42),
+ ),
+ ],
+ ),
+ b'\x32\x21\x00\x00\x00\x18\x00\x00\x00\x03foo\x21\x00\x00\x00\x03bar\x00\x00\x00\x03baz\x03\x2a',
+ ),
]
class BinarySerializeTests(unittest.TestCase):
(tags.TaggedObject(tags.INT16, -2), '-2i16'),
(tags.TaggedObject(tags.INT32, -2), '-2i32'),
(tags.TaggedObject(tags.INT64, -2), '-2i64'),
+ (tags.TaggedObject(tags.BINARY, b'\x42\xde\xad\xbe\xef'), 'bin"42deadbeef"'),
+ (tags.TaggedObject(tags.UTF8, 'Lol!'), 'utf8"Lol!"'),
+ (tags.TaggedObject(tags.UTF16, 'かわ'), 'utf16"かわ"'),
+ (tags.TaggedObject(tags.UTF32, '漢'), 'utf32"漢"'),
+ (
+ tags.TaggedObject(
+ tag = tags.LIST,
+ instance = [
+ tags.TaggedObject(tag = tags.UINT8, instance = 9),
+ tags.TaggedObject(tag = tags.UINT8, instance = 22),
+ tags.TaggedObject(tag = tags.UINT8, instance = 36),
+ ],
+ ),
+ '[\n 9u8,\n 22u8,\n 36u8\n]'
+ ),
+ (
+ tags.TaggedObject(
+ tag = tags.OBJECT,
+ instance = [
+ (
+ tags.TaggedObject(tag = tags.UTF8, instance = 'foo'),
+ tags.TaggedObject(tag = tags.UTF8, instance = 'bar'),
+ ),
+ (
+ tags.TaggedObject(tag = tags.UTF8, instance = 'baz'),
+ tags.TaggedObject(tag = tags.UINT8, instance = 42),
+ ),
+ ],
+ ),
+ '{\n utf8"foo": utf8"bar",\n utf8"baz": 42u8\n}',
+ ),
]
class TextSerializeTests(unittest.TestCase):