mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Patch #1303: Adapt str8 constructor to bytes (now buffer) one.
This commit is contained in:
parent
97f9d4f312
commit
bd1c68c94f
15 changed files with 212 additions and 72 deletions
|
@ -101,7 +101,7 @@ s = struct.pack('ii', 1, 2)
|
|||
simple_err(struct.unpack, 'iii', s)
|
||||
simple_err(struct.unpack, 'i', s)
|
||||
|
||||
c = str8('a')
|
||||
c = str8(b'a')
|
||||
b = 1
|
||||
h = 255
|
||||
i = 65535
|
||||
|
@ -186,7 +186,7 @@ for fmt, arg, big, lil, asy in tests:
|
|||
if isinstance(arg, str):
|
||||
# Strings are returned as str8 since you can't know the encoding of
|
||||
# the string when packed.
|
||||
arg = str8(arg)
|
||||
arg = str8(arg, 'latin1')
|
||||
if rev != arg and not asy:
|
||||
raise TestFailed("unpack(%r, %r) -> (%r,) # expected (%r,)" % (
|
||||
fmt, res, rev, arg))
|
||||
|
@ -428,14 +428,14 @@ for args in [("bB", 1),
|
|||
|
||||
def test_p_code():
|
||||
for code, input, expected, expectedback in [
|
||||
('p','abc', '\x00', str8('')),
|
||||
('1p', 'abc', '\x00', str8('')),
|
||||
('2p', 'abc', '\x01a', str8('a')),
|
||||
('3p', 'abc', '\x02ab', str8('ab')),
|
||||
('4p', 'abc', '\x03abc', str8('abc')),
|
||||
('5p', 'abc', '\x03abc\x00', str8('abc')),
|
||||
('6p', 'abc', '\x03abc\x00\x00', str8('abc')),
|
||||
('1000p', 'x'*1000, '\xff' + 'x'*999, str8('x'*255))]:
|
||||
('p','abc', '\x00', str8()),
|
||||
('1p', 'abc', '\x00', str8()),
|
||||
('2p', 'abc', '\x01a', str8(b'a')),
|
||||
('3p', 'abc', '\x02ab', str8(b'ab')),
|
||||
('4p', 'abc', '\x03abc', str8(b'abc')),
|
||||
('5p', 'abc', '\x03abc\x00', str8(b'abc')),
|
||||
('6p', 'abc', '\x03abc\x00\x00', str8(b'abc')),
|
||||
('1000p', 'x'*1000, '\xff' + 'x'*999, str8(b'x'*255))]:
|
||||
expected = bytes(expected, "latin-1")
|
||||
got = struct.pack(code, input)
|
||||
if got != expected:
|
||||
|
@ -564,20 +564,24 @@ def test_unpack_from():
|
|||
if verbose:
|
||||
print("test_unpack_from using", cls.__name__)
|
||||
data = cls(test_string)
|
||||
vereq(s.unpack_from(data), (str8('abcd'),))
|
||||
vereq(s.unpack_from(data, 2), (str8('cd01'),))
|
||||
vereq(s.unpack_from(data, 4), (str8('0123'),))
|
||||
if not isinstance(data, (str8, bytes)):
|
||||
bytes_data = str8(data, 'latin1')
|
||||
else:
|
||||
bytes_data = data
|
||||
vereq(s.unpack_from(data), (str8(b'abcd'),))
|
||||
vereq(s.unpack_from(data, 2), (str8(b'cd01'),))
|
||||
vereq(s.unpack_from(data, 4), (str8(b'0123'),))
|
||||
for i in range(6):
|
||||
vereq(s.unpack_from(data, i), (str8(data[i:i+4]),))
|
||||
vereq(s.unpack_from(data, i), (bytes_data[i:i+4],))
|
||||
for i in range(6, len(test_string) + 1):
|
||||
simple_err(s.unpack_from, data, i)
|
||||
for cls in (str, str8, bytes): # XXX + memoryview
|
||||
data = cls(test_string)
|
||||
vereq(struct.unpack_from(fmt, data), (str8('abcd'),))
|
||||
vereq(struct.unpack_from(fmt, data, 2), (str8('cd01'),))
|
||||
vereq(struct.unpack_from(fmt, data, 4), (str8('0123'),))
|
||||
vereq(struct.unpack_from(fmt, data), (str8(b'abcd'),))
|
||||
vereq(struct.unpack_from(fmt, data, 2), (str8(b'cd01'),))
|
||||
vereq(struct.unpack_from(fmt, data, 4), (str8(b'0123'),))
|
||||
for i in range(6):
|
||||
vereq(struct.unpack_from(fmt, data, i), (str8(data[i:i+4]),))
|
||||
vereq(struct.unpack_from(fmt, data, i), (bytes_data[i:i+4],))
|
||||
for i in range(6, len(test_string) + 1):
|
||||
simple_err(struct.unpack_from, fmt, data, i)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue