我有以下Python代码:
def example(byte_array):
"""
Return the byte array.
>>> example(b'\x01')
b'\x01'
"""
return byte_array
当使用python3执行此代码时,doctest失败。以下是输出:
**********************************************************************
File "example.py", line 74, in __main__.example
Failed example:
example(b'')
Expected:
b''
Got:
b'\x01'
预期结果是错误的。我怎么写这个测试通过?我必须做一些令人费解的事情,例如example(b\'x01') is b'\x01'
匹配True
,还是有更好的解决方案?
请注意,当使用example(b'\0x2d')
时,测试会正确传递,大概是因为字符0x2d是短划线(“ - ”),并且可见地打印到终端。
答案 0 :(得分:0)
转义字符串中的反斜杠。
"""
...
b'\\x01'
...
"""
答案 1 :(得分:0)
虽然转义反斜杠的 previous answer 有效,但 flake8
(版本 3.8.4
)会抱怨:
D301 Use r""" if any backslashes in a docstring
更好的方法是使文档字符串成为带有前导 r
的原始字符串文字:
flake8
也不再引发错误def example(byte_array):
r"""
Return the byte array.
>>> example(b'\x01')
b'\x01'
"""
return byte_array