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
from six import iteritems
from mongoengine.queryset.transform import STRING_OPERATORS
try:
import dateutil
except ImportError:
@ -39,6 +37,7 @@ from mongoengine.errors import DoesNotExist, InvalidQueryError, ValidationError
from mongoengine.python_support import StringIO
from mongoengine.queryset import DO_NOTHING
from mongoengine.queryset.base import BaseQuerySet
from mongoengine.queryset.transform import STRING_OPERATORS
try:
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
# get_mongodb_version()
MONGODB_34 = (3, 4)
MONGODB_36 = (3, 6)

View File

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