2.12. Use mongomock for testing¶
mongomock is a package to do just what the name implies, mocking a mongo database.
To use with mongoengine, simply specify mongomock when connecting with mongoengine:
connect('mongoenginetest', host='mongomock://localhost')
conn = get_connection()
or with an alias:
connect('mongoenginetest', host='mongomock://localhost', alias='testdb')
conn = get_connection('testdb')
2.12.1. Example of test file:¶
import unittest
from mongoengine import connect, disconnect
class Person(Document):
name = StringField()
class TestPerson(unittest.TestCase):
@classmethod
def setUpClass(cls):
connect('mongoenginetest', host='mongomock://localhost')
@classmethod
def tearDownClass(cls):
disconnect()
def test_thing(self):
pers = Person(name='John')
pers.save()
fresh_pers = Person.objects().first()
assert fresh_pers.name == 'John'