私がしているのはregister_connection
、を使用してから、テストで接続をモックすることです。
私がMongoドキュメントを定義するファイルには、次のものがあります。
import mongoengine
from django.conf import settings
mongoengine.register_connection(
'default', settings.MONGOENGINE_DB, **settings.MONGOENGINE_CONNECTION)
次に、テストでは、モックライブラリconnection
を使用して、接続の動作を変更します(サブモジュールの関数の1つを次のようにモックすることも可能ですget_db
)。
connections = patch.dict(
mongoengine.connection._connections, {'default': None})
dbs = patch.dict(
mongoengine.connection._dbs, {'default': {
'your_collection': None,
'another_collection': None,
}})
dbs.start()
connections.start()
insert = patch.object(mongoengine.queryset.QuerySet, 'insert')
insert_mock = insert.start()
...
insert_mock.assert_called_once(...)