私はvcrpyを私のアプリケーションの自動http疑似テストに使用しています。これは素晴らしい作品です。しかし私のモックには 'gzip'と 'deflate'のエンコーディングが含まれています。つまり、vcrpyの記録応答はバイナリ形式です。ここでは例です:vcrpyバイナリ応答文字列から非圧縮テキストを抽出するにはどうすればよいですか?
interactions:
- request:
body: null
headers:
Accept: ['*/*']
Accept-Encoding: ['gzip, deflate']
Authorization: [Basic Y2hlc3RlcjpiYWRnZXI=]
Connection: [keep-alive]
User-Agent: [python-requests/2.9.1]
method: GET
uri: http://localhost:8153/go/compare/DeployProduction/14/with/15
response:
body:
string: !!binary |
H4sIAAAAAAAAAO08bXPbNpPf8ytQ9q6yp+Y7KZGKrU7quG1mEscXO7276XQ0IAlKjCmCQ0KW9TxP
/vstAJIiJUpxkkvS3tmTiSRisVjsG3YXIE6/e/76/Oa/ry7QbzevXk6enM7ZIkX3izQrz5Q5Y/lY
11erlbayNVrMdNP3ff2ewygcluBo8gTB3ylLWErk93O6yHFB0FWSkzTJSImu8IwgFf1Kn5zqFeCT
U2i6RREJlrMzJcZpSRQ0L0h8pugzquOyJKzUcZ6nSYhZQjPVCG0PE9saObHthJbjE2L79tCPhhY2
ImxZlhEH2Hbt0PB8NyCBZ8RO6NsksoZDi1haWJYKWpAowWcKTlMFFSQ9U0q2Tkk5J4QpSJ88jKwc
M0aKrEtf6EeBEYXG0ByFERmR2A9sO8CmPzR8LyAYEyOwwpHj48COseOaLgmsUehiHAxjOzYfRt+T
0+9UFV3fPHtzM0Z5QRll65ygOaW3JYppgQALSrJ3JOREIVWtu1xcPn94hzIskpxtsaEswr3CCYwA
pjUMh8Qf+iZIY2hGpu063iiyTOyDUPxRbFrRyPJHxHRBIiChKIij2LfMUWxo70plcqrLcUEK3/2R
(追加出力は省略)
私は約decompressing zlibを読みましたが、それはバイナリYAMLをデコード対応していません。
元のテキストを表示してテスト結果を確認できるように、これらのバイナリ文字列を元の形式に変換するにはどうすればよいですか?
[Github issue](https://github.com/kevin1024/vcrpy/issues/241)ここでは、Python 3でのリクエストの本体がエンコードされていると説明しています。 – Reti43
ありがとう@ Reti43、私はGithubの問題も発見し、自分自身をパイルに追加しました:https://github.com/kevin1024/vcrpy/issues/249 – EdwardTeach
@EdwardTeach私はあなたが身体を解読するのが難しいか分かりません文字列。 yamlファイルではbase64文字列として保存されますが、 'yaml.load()'の後にはバイト列になります。私のサンプルコードはあなたのために働かなかったのですか? – Reti43