fix tests for diff mongo vers

This commit is contained in:
Bastien Gérard 2019-06-04 23:35:38 +02:00
parent 82e28dec43
commit 15f4d4fee6
3 changed files with 13 additions and 4 deletions

View File

@ -13,8 +13,6 @@ import pymongo
import six import six
from six import iteritems from six import iteritems
from mongoengine.queryset.transform import STRING_OPERATORS
try: try:
import dateutil import dateutil
except ImportError: except ImportError:
@ -39,6 +37,7 @@ from mongoengine.errors import DoesNotExist, InvalidQueryError, ValidationError
from mongoengine.python_support import StringIO from mongoengine.python_support import StringIO
from mongoengine.queryset import DO_NOTHING from mongoengine.queryset import DO_NOTHING
from mongoengine.queryset.base import BaseQuerySet from mongoengine.queryset.base import BaseQuerySet
from mongoengine.queryset.transform import STRING_OPERATORS
try: try:
from PIL import Image, ImageOps from PIL import Image, ImageOps

View File

@ -6,6 +6,7 @@ from mongoengine.connection import get_connection
# Constant that can be used to compare the version retrieved with # Constant that can be used to compare the version retrieved with
# get_mongodb_version() # get_mongodb_version()
MONGODB_34 = (3, 4)
MONGODB_36 = (3, 6) MONGODB_36 = (3, 6)

View File

@ -12,6 +12,7 @@ from bson import DBRef, ObjectId
from pymongo.errors import DuplicateKeyError from pymongo.errors import DuplicateKeyError
from six import iteritems from six import iteritems
from mongoengine.mongodb_support import get_mongodb_version, MONGODB_36, MONGODB_34
from mongoengine.pymongo_support import list_collection_names from mongoengine.pymongo_support import list_collection_names
from tests import fixtures from tests import fixtures
from tests.fixtures import (PickleEmbedded, PickleTest, PickleSignalsTest, from tests.fixtures import (PickleEmbedded, PickleTest, PickleSignalsTest,
@ -467,10 +468,13 @@ class InstanceTest(MongoDBTestCase):
doc = Animal(superphylum='Deuterostomia') doc = Animal(superphylum='Deuterostomia')
doc.save() doc.save()
mongo_db = get_mongodb_version()
CMD_QUERY_KEY = 'command' if mongo_db >= MONGODB_36 else 'query'
with query_counter() as q: with query_counter() as q:
doc.reload() doc.reload()
query_op = q.db.system.profile.find({'ns': 'mongoenginetest.animal'})[0] query_op = q.db.system.profile.find({'ns': 'mongoenginetest.animal'})[0]
self.assertEqual(set(query_op['query']['filter'].keys()), set(['_id', 'superphylum'])) self.assertEqual(set(query_op[CMD_QUERY_KEY]['filter'].keys()), set(['_id', 'superphylum']))
Animal.drop_collection() Animal.drop_collection()
@ -501,12 +505,17 @@ class InstanceTest(MongoDBTestCase):
doc = Animal(is_mammal=True, name='Dog') doc = Animal(is_mammal=True, name='Dog')
doc.save() doc.save()
mongo_db = get_mongodb_version()
with query_counter() as q: with query_counter() as q:
doc.name = 'Cat' doc.name = 'Cat'
doc.save() doc.save()
query_op = q.db.system.profile.find({'ns': 'mongoenginetest.animal'})[0] query_op = q.db.system.profile.find({'ns': 'mongoenginetest.animal'})[0]
self.assertEqual(query_op['op'], 'update') self.assertEqual(query_op['op'], 'update')
if mongo_db == MONGODB_34:
self.assertEqual(set(query_op['query'].keys()), set(['_id', 'is_mammal'])) self.assertEqual(set(query_op['query'].keys()), set(['_id', 'is_mammal']))
else:
self.assertEqual(set(query_op['command']['q'].keys()), set(['_id', 'is_mammal']))
Animal.drop_collection() Animal.drop_collection()