Я использую register_connection
, а затем проверяю соединения при тестировании.
В файле, который я определяю Mongo Documents, у меня есть это:
import mongoengine
from django.conf import settings
mongoengine.register_connection(
'default', settings.MONGOENGINE_DB, **settings.MONGOENGINE_CONNECTION)
Затем в тестах я использую библиотеку mock , чтобы изменить поведение соединений (также можно смоделировать одну из функций в субмодуле connection
, например 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(...)