1

このdoctestの場合:

r'''
>>> uuid_hex_to_binary('8ed2d35f-2911-4c10-ad68-587c96b4686e')
'\x8e\xd2\xd3\x5f\x29\x11\x4c\x10\xad\x68\x58\x7c\x96\xb4\x68\x6e'
'''

私はこの結果を得ています:

Failed example:
    uuid_hex_to_binary('8ed2d35f-2911-4c10-ad68-587c96b4686e')
Expected:
    '\x8e\xd2\xd3\x5f\x29\x11\x4c\x10\xad\x68\x58\x7c\x96\xb4\x68\x6e'
Got:
    '\x8e\xd2\xd3_)\x11L\x10\xadhX|\x96\xb4hn'

文字列は同等であるため、テストに合格する必要があります。ただし、「Got:」文字列では、\xHHエスケープの一部が対応するASCII文字に変換されていますが、「Expected:」文字列ではこれが行われていません。

docstringの物乞いでに変更r'''すると、代わりに次のようになります。'''

Failed example:
    uuid_hex_to_binary('8ed2d35f-2911-4c10-ad68-587c96b4686e')
Expected:
    '???_)L?hX|??hn'
Got:
    '\x8e\xd2\xd3_)\x11L\x10\xadhX|\x96\xb4hn'

doctestで2つの文字列を一致させるにはどうすればよいですか?

4

2 に答える 2

0

おっと、私は尋ねてから10秒後にそれを理解しました。私はそれを次のように機能させました:

r'''
>>> a = uuid_hex_to_binary('8ed2d35f-2911-4c10-ad68-587c96b4686e')
>>> b = '\x8e\xd2\xd3\x5f\x29\x11\x4c\x10\xad\x68\x58\x7c\x96\xb4\x68\x6e'
>>> a == b
True
'''
于 2012-03-26T08:52:30.557 に答える
0

このことを考慮:

>>> '\x8e\xd2\xd3\x5f\x29\x11\x4c\x10\xad\x68\x58\x7c\x96\xb4\x68\x6e'
'\x8e\xd2\xd3_)\x11L\x10\xadhX|\x96\xb4hn'

'\x5f'( )のような文字'_'は印刷可能なASCII値を持っているので、repr()呼び出しでそれらは短い形式に変換されます。これはあなたが望むものではないので、フルバージョンと比較したい場合は、次のようなものが必要になります

>>> uuid_hex_to_binary('8ed2d35f-2911-4c10-ad68-587c96b4686e') == \
... '\x8e\xd2\xd3\x5f\x29\x11\x4c\x10\xad\x68\x58\x7c\x96\xb4\x68\x6e'
True
于 2012-03-26T09:43:22.540 に答える