Add support for mocking MongoEngine based on mongomock
Using `mongomock://` scheme in URI enables the mocking. Fix #1045.
This commit is contained in:
		| @@ -8,6 +8,7 @@ try: | ||||
|     import unittest2 as unittest | ||||
| except ImportError: | ||||
|     import unittest | ||||
| from nose.plugins.skip import SkipTest | ||||
|  | ||||
| import pymongo | ||||
| from bson.tz_util import utc | ||||
| @@ -51,6 +52,22 @@ class ConnectionTest(unittest.TestCase): | ||||
|         conn = get_connection('testdb') | ||||
|         self.assertTrue(isinstance(conn, pymongo.mongo_client.MongoClient)) | ||||
|  | ||||
|     def test_connect_in_mocking(self): | ||||
|         """Ensure that the connect() method works properly in mocking. | ||||
|         """ | ||||
|         try: | ||||
|             import mongomock | ||||
|         except ImportError: | ||||
|             raise SkipTest('you need mongomock installed to run this testcase') | ||||
|  | ||||
|         connect('mongoenginetest', host='mongomock://localhost') | ||||
|         conn = get_connection() | ||||
|         self.assertTrue(isinstance(conn, mongomock.MongoClient)) | ||||
|  | ||||
|         connect('mongoenginetest2', host='mongomock://localhost', alias='testdb') | ||||
|         conn = get_connection('testdb') | ||||
|         self.assertTrue(isinstance(conn, mongomock.MongoClient)) | ||||
|  | ||||
|     def test_disconnect(self): | ||||
|         """Ensure that the disconnect() method works properly | ||||
|         """ | ||||
| @@ -151,7 +168,7 @@ class ConnectionTest(unittest.TestCase): | ||||
|             self.assertRaises(ConnectionError, get_db, 'test1') | ||||
|  | ||||
|         # Authentication succeeds with "authSource" | ||||
|         test_conn2 = connect( | ||||
|         connect( | ||||
|             'mongoenginetest', alias='test2', | ||||
|             host=('mongodb://username2:password@localhost/' | ||||
|                   'mongoenginetest?authSource=admin') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user