25 lines
908 B
Python
25 lines
908 B
Python
import unittest
|
|
from unittest import mock
|
|
|
|
from blender_asset_tracer.blendfile import dna, dna_io
|
|
|
|
|
|
class StringTest(unittest.TestCase):
|
|
def test_trim_utf8(self):
|
|
fileobj = mock.Mock()
|
|
# Sinhala for 'beer'. This is exactly 15 bytes in UTF-8, so the last
|
|
# character won't fit in the field (due to the 0-byte required).
|
|
dna_io.BigEndianTypes.write_string(fileobj, "බියර්", 15)
|
|
|
|
expect_bytes = ("බියර්"[:-1]).encode("utf8") + b"\0"
|
|
fileobj.write.assert_called_with(expect_bytes)
|
|
|
|
def test_utf8(self):
|
|
fileobj = mock.Mock()
|
|
# Sinhala for 'beer'. This is exactly 15 bytes in UTF-8,
|
|
# so with the 0-byte it just fits.
|
|
dna_io.BigEndianTypes.write_string(fileobj, "බියර්", 16)
|
|
|
|
expect_bytes = "බියර්".encode("utf8") + b"\0"
|
|
fileobj.write.assert_called_with(expect_bytes)
|