implemented global IS_PYMONGO_3

This commit is contained in:
mrigal
2015-04-10 22:23:56 +02:00
committed by Matthieu Rigal
parent c0f1493473
commit 48316ba60d
8 changed files with 32 additions and 21 deletions

View File

@@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
import unittest
import sys
sys.path[0:0] = [""]
import os
import pymongo
from nose.plugins.skip import SkipTest
@@ -11,6 +11,7 @@ from datetime import datetime
from mongoengine import *
from mongoengine.connection import get_db, get_connection
from mongoengine.python_support import IS_PYMONGO_3
__all__ = ("IndexesTest", )
@@ -447,26 +448,26 @@ class IndexesTest(unittest.TestCase):
# Need to be explicit about covered indexes as mongoDB doesn't know if
# the documents returned might have more keys in that here.
query_plan = Test.objects(id=obj.id).exclude('a').explain()
if pymongo.version_tuple[0] < 3:
if not IS_PYMONGO_3:
self.assertFalse(query_plan['indexOnly'])
else:
self.assertEqual(query_plan.get('queryPlanner').get('winningPlan').get('inputStage').get('stage'), 'IDHACK')
query_plan = Test.objects(id=obj.id).only('id').explain()
if pymongo.version_tuple[0] < 3:
if not IS_PYMONGO_3:
self.assertTrue(query_plan['indexOnly'])
else:
self.assertEqual(query_plan.get('queryPlanner').get('winningPlan').get('inputStage').get('stage'), 'IDHACK')
query_plan = Test.objects(a=1).only('a').exclude('id').explain()
if pymongo.version_tuple[0] < 3:
if not IS_PYMONGO_3:
self.assertTrue(query_plan['indexOnly'])
else:
self.assertEqual(query_plan.get('queryPlanner').get('winningPlan').get('inputStage').get('stage'), 'IXSCAN')
self.assertEqual(query_plan.get('queryPlanner').get('winningPlan').get('stage'), 'PROJECTION')
query_plan = Test.objects(a=1).explain()
if pymongo.version_tuple[0] < 3:
if not IS_PYMONGO_3:
self.assertFalse(query_plan['indexOnly'])
else:
self.assertEqual(query_plan.get('queryPlanner').get('winningPlan').get('inputStage').get('stage'), 'IXSCAN')