1

私はPOSTリクエストを受け入れたいFlaskで作成されたREST APIを持っていますが、API自体を実行しているのと同じマシンから作成されたもののみです。

この趣旨のテストを作成しようとしました。Flask と Werkzeug のドキュメントを少し閲覧した後、これが思いつきました。

def test_external_post_fails(self):

    my_data = {
        ...
    }

    result = self.client.post('/my_uri', 
                    data=my_data
                    environ_overrides={'remote_addr': '127.0.0.2'})
    assert result.status_code == 401

ただし、Flask ビュー関数に対応するコードをいくつか記述した後、テストで期待したことを達成しているとは思いません。そのコードは次のとおりです。

if request.environ.get('REMOTE_ADDR', '127.0.0.1') != '127.0.0.1':
    abort(401)
post_data = request.form
DPC.store(post_data)
return jsonify(post_data), 201

テストを実行すると、通常の 201 Created 応答が返されます。したがって、これを正しい方法でテストしているとは思いません。つまり、リクエスト環境を変更する必要があります。キーワード引数を使用して私がやろうとしたことは、environ_overridesFlask のクライアントの API を参照した後に行った推測にすぎません。

これを行う標準的な方法を知っている人はいますか? 前もって感謝します。

4

1 に答える 1

2

上記のコメントで発見されたように、environ_overrides辞書は大文字と小文字を区別します。remote_addr次のように大文字にする必要があります。

environ_overrides={'REMOTE_ADDR': '127.0.0.2'})
于 2013-11-01T04:13:02.073 に答える