Usar el servidor de MongoDB simulado para la prueba de la unidad

Tengo que implementar pruebas para el código Python usando una tienda MongoDB. ¿Hay alguna biblioteca de Python que me permita inicializar un servidor MongoDB en memoria simulado?

Estoy utilizando la integración continua. Por lo tanto, quiero que mis pruebas sean independientes de cualquier servidor en ejecución de MongoDB. ¿Hay alguna manera de simular que el servidor mongoDM en la memoria pruebe el código independientemente de conectarse a un servidor Mongo?

¡Gracias por adelantado!

Puede probar: https://github.com/vmalloc/mongomock , que pretende ser una pequeña biblioteca para burlarse de los objetos de colección de pymongo con fines de prueba.

Sin embargo, no estoy seguro de que el costo de solo ejecutar mongodb sea prohibitivo en comparación con asegurar que alguna biblioteca de burlas esté completa.

No sé sobre Python, pero tenía una preocupación similar con C #. Decidí simplemente ejecutar una instancia real de Mongo en mi estación de trabajo apuntando a un directorio vacío. No es genial porque el código no está aislado pero es rápido y fácil.

Solo la capa de acceso a datos en realidad llama a Mongo durante la prueba. El rest puede confiar en los simulacros de la capa de acceso a datos. No sentí que fingir que Mongo valiera la pena cuando realmente quiero verificar que la interacción con Mongo es correcta de todos modos.

Puede usar Ming que tiene un reemplazo de conexión mongo db pymongo en memoria.

import ming mg = ming.create_datastore('mim://') mg.conn # is the connection mg.db # is a db with no name mg.conn.somedb.somecol # >> mim.Collection(mim.Database(somedb), somecol) col = mg.conn.somedb.somecol col.insert({'a': 1}) # >> ObjectId('5216ac3fe0323a1218f4e9aa') col.find().count() # >> 1