Я использую nosetests для кода Python для проверки кода с помощью соединения MongoDB, я использовал стандартную библиотеку python mock с mongoMock: https://github.com/vmalloc/mongomock, я исправил модуль pymongo.MongoClient, чтобы издеваться над этим, но проблема заключается в том, что объект mongoMock не заменяет фактический объект, что означает, что тестовая функция все еще использует фактическое соединение mongoDB.mock mongoDB для теста python unit
Это фактический код:
def post_data():
connection = MongoClient('mongodb://localhost:27017/').customers.review
post = {"author": "Mike",
"text": "My first blog post!",
"tags": ["mongodb", "python", "pymongo"],
"votes":1}
print connection
connection.insert_one(post)
функция тестирования:
@mock.patch('pymongo.MongoClient')
def test_post_data(mock_MongoClient):
mock_MongoClient.return_value= mongomock.MongoClient().db.collection
post_data()
при запуске теста код все еще вставляя на реальной базе данных и код выводит фактическое соединение! ! Пожалуйста, что случилось с этим и как это сделать правильно?
Заранее благодарен!