Make message.to_dict() return bytes for DATA type field (#386)
* change to_dict return bytes for DATA type * reformat * reformat * add includes .h --------- Co-authored-by: Brian Xu <brian.xu1@bytedance.com>
This commit is contained in:
@@ -1060,6 +1060,12 @@ cdef _to_dict(msg, bint verbose, bint ordered, bint encode_bytes_as_base64=False
|
||||
# encode the message as base64 and return utf-8 string
|
||||
return base64.b64encode(msg).decode('utf-8')
|
||||
|
||||
if msg_type is memoryview:
|
||||
if encode_bytes_as_base64:
|
||||
return base64.b64encode(bytes(msg)).decode('utf-8')
|
||||
else:
|
||||
return bytes(msg)
|
||||
|
||||
return msg
|
||||
|
||||
|
||||
|
||||
1
setup.py
1
setup.py
@@ -222,6 +222,7 @@ setup(
|
||||
"*.capnp",
|
||||
"helpers/*.pxd",
|
||||
"helpers/*.h",
|
||||
"includes/*.h",
|
||||
"includes/*.pxd",
|
||||
"lib/*.pxd",
|
||||
"lib/*.py",
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import os
|
||||
import capnp
|
||||
import base64
|
||||
import pytest
|
||||
|
||||
this_dir = os.path.dirname(__file__)
|
||||
@@ -14,7 +15,7 @@ def test_blob_to_dict(blob_schema):
|
||||
blob_value = b"hello world"
|
||||
blob = blob_schema.BlobTest(blob=blob_value)
|
||||
blob_dict = blob.to_dict(encode_bytes_as_base64=True)
|
||||
assert blob_dict["blob"].tobytes() == blob_value
|
||||
assert base64.b64decode(blob_dict["blob"]) == blob_value
|
||||
msg = blob_schema.BlobTest.new_message()
|
||||
msg.from_dict(blob_dict)
|
||||
assert blob.blob == blob_value
|
||||
|
||||
Reference in New Issue
Block a user