diff --git a/src/pEp/_pEp/message.cc b/src/pEp/_pEp/message.cc index 11bd51a..3666669 100644 --- a/src/pEp/_pEp/message.cc +++ b/src/pEp/_pEp/message.cc @@ -95,7 +95,8 @@ namespace pEp { } object Message::Blob::data() { - return object(handle<>(PyBytes_FromString(_bl->value))); + return object(handle<>(PyBytes_FromStringAndSize(_bl->value, + _bl->size))); } void Message::Blob::data(object data) { diff --git a/tests/test_blob.py b/tests/test_blob.py index 857c369..b4df272 100644 --- a/tests/test_blob.py +++ b/tests/test_blob.py @@ -4,18 +4,28 @@ """Blob unit tests.""" -import pytest -from . import constants -from . import model - -def test_blob_data_constructor(pEp, model): - bdata = bytes('this is test data', 'utf-8') +def test_blob_data_constructor(pEp): + bdata = b'this is binary \x00\x01\xbb\xa7\xa4\xab test data' b = pEp.Blob(bdata) - assert(b.data == bdata) + assert b.data == bdata + assert not b.mime_type + assert not b.filename + -def test_blob_data_property(pEp, model): +def test_blob_data_property(pEp): + bdata = b'this is binary \x00\x01\xbb\xa7\xa4\xab test data' b = pEp.Blob(b'dummy') - bdata = bytes('this is test data', 'utf-8') b.data = bdata - assert(b.data == bdata) + assert b.data == bdata + assert not b.mime_type + assert not b.filename + + +def test_blob_data_property_keeps_other_fields(pEp): + bdata = b'this is binary \x00\x01\xbb\xa7\xa4\xab test data' + b = pEp.Blob(b'dummy', 'application/x-mydata', 'myfile.dat') + b.data = bdata + assert b.data == bdata + assert b.mime_type == 'application/x-mydata' + assert b.filename == 'myfile.dat'