Fix a Python bytes/int mismatch in CLI tests

In Python 3.x, a single element of a bytes array is returned as
an integer number. Thus, NEWLINE is an int variable, and attempting
to add it to the line array will fail with a type mismatch error
that may be demonstrated as follows:

    [roam@straylight ~]$ python3 -c 'b"hello" + b"\n"[0]'
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    TypeError: can't concat int to bytes
    [roam@straylight ~]$
This commit is contained in:
Peter Pentchev 2023-03-18 22:32:42 +02:00 committed by Nick Terrell
parent e2208242ac
commit 29b8a3d8f2

View File

@ -109,7 +109,7 @@ def pop_line(data: bytes) -> typing.Tuple[typing.Optional[bytes], bytes]:
the first line always ends in a :\n:, even if it is the last line and :data:
doesn't end in :\n:.
"""
NEWLINE = b"\n"[0]
NEWLINE = b"\n"
if data == b'':
return (None, data)
@ -124,7 +124,7 @@ def pop_line(data: bytes) -> typing.Tuple[typing.Optional[bytes], bytes]:
data = data[end_idx:]
assert len(line) != 0
if line[-1] != NEWLINE:
if not line.endswith(NEWLINE):
line += NEWLINE
return (line, data)