LoginSignup
4
1

More than 5 years have passed since last update.

moto によって requests が意図せずモック化されてしまう問題を回避する

Last updated at Posted at 2018-12-27

moto は、AWS SDK の mocking パッケージです。
moto を用いたユニットテストについては以前 エントリを書きました。

このなかで触れましたが、requests パッケージが意図せずモック化されてしまう問題があります。
この問題の回避策について自分なりのアプローチをまとめておきます

問題

問題としては、moto でスタブをアクティブにすると その後の requests パッケージによるリクエストがすべてモック化されてしまうというものです:

これにより、elasticsearch-py など requests に依存したパッケージにおいてHTTPリクエストのさいにエラーが起きることがあります。

回避策

回避策としては、moto の responses_mock にパススルーする URL を登録します:

moto.core.models.responses_mock.add_passthru('http://localhost:9200')

responses という requests の mocking パッケージがあります。
moto はこれを AWS からのレスポンスをスタブ化するのに使っていて、パススルー元を追加するメソッドでスタブ化させたくない URL を事前に登録します。

参考

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1