import hashlib
def my_function(bytes_):
"""
>>> my_function(b'\0')
'6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d'
"""
return hashlib.sha256(bytes_).hexdigest()
if __name__ == "__main__":
import doctest
doctest.testmod()
予想される動作を含むことができません: 1試験はとValueError:ソースコード列はヌルバイトを
実際の挙動を渡し:ValueError
例外がdoctest.py
内から上昇させます。
私は同じ結果とb'\x00'
リテラルとしても使用することを試みました。 doctestでnullバイトを使用する方法は?正確にここでの問題は何ですか?また、修正が必要なのか、あまりにも醜い回避策がありますか?
は、なぜあなたはあなたのドキュメントのNULLバイトを_want_でしょうか?ドキュメントに 'my_function(b '\ 0')'ではなく 'my_function(b '\ 0')'を読み込ませたいとします。私はここに何かを逃していますかあなたは生の弦をそこに使用したいと確信しています... –
これはMCVEです。コードがnullバイトを特定の方法で処理するという事実は、*私のアプリケーションでは実際には関連して必要です。 – wim
ただ、気づい:[ピクルス](https://github.com/python/cpython/blob/3.6/Lib/pickletools.py#L252)は、これと同じ二重解析問題に対処しなければならないのdoctestを持っています。 – wim