Python で小さなプロジェクトを開始しており、py.test で単体テストを作成したいと考えています。pymongo
モジュールまたはMongoClient
クラスにパッチを適用する必要があります。だから私はこのようなことを試しました:
@pytest.fixture(scope='module')
def mock_pymongo(monkeypatch):
monkeypatch.setattr('pymongo', mongomock)
またはこのようなもの:
@pytest.fixture(scope='class')
def mock_pymongo(monkeypatch):
monkeypatch.setattr('pymongo.mongo_client.MongoClient', mongomock.mongo_client.MongoClient)
今私がやっている両方のテストで、スコープの不一致エラーが発生します
scopeMismatch: You tried to access the 'function' scoped fixture 'monkeypatch' with a 'module' scoped request object, involved factories
tests/test_1.py:17: def mock_pymongo(monkeypatch)
適切なツールを使用しているのかもしれませんが、単体テストでクラスとモジュールをモックするためにmonkeypatchを使用する方法はありますか?