Fixing PY3.3 test cases
This commit is contained in:
parent
06681a453f
commit
87c965edd3
@ -7,10 +7,11 @@ import operator
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
from mongoengine.python_support import product, reduce
|
from mongoengine.python_support import product, reduce, PY3
|
||||||
|
|
||||||
import pymongo
|
import pymongo
|
||||||
from bson.code import Code
|
from bson.code import Code
|
||||||
|
from bson.son import SON
|
||||||
|
|
||||||
from mongoengine import signals
|
from mongoengine import signals
|
||||||
|
|
||||||
@ -388,7 +389,12 @@ class QuerySet(object):
|
|||||||
if self._mongo_query is None:
|
if self._mongo_query is None:
|
||||||
self._mongo_query = self._query_obj.to_query(self._document)
|
self._mongo_query = self._query_obj.to_query(self._document)
|
||||||
if self._class_check:
|
if self._class_check:
|
||||||
self._mongo_query.update(self._initial_query)
|
if PY3:
|
||||||
|
query = SON(self._initial_query.items())
|
||||||
|
query.update(self._mongo_query)
|
||||||
|
self._mongo_query = query
|
||||||
|
else:
|
||||||
|
self._mongo_query.update(self._initial_query)
|
||||||
return self._mongo_query
|
return self._mongo_query
|
||||||
|
|
||||||
def ensure_index(self, key_or_list, drop_dups=False, background=False,
|
def ensure_index(self, key_or_list, drop_dups=False, background=False,
|
||||||
@ -704,7 +710,7 @@ class QuerySet(object):
|
|||||||
|
|
||||||
mongo_query = {}
|
mongo_query = {}
|
||||||
merge_query = defaultdict(list)
|
merge_query = defaultdict(list)
|
||||||
for key, value in query.items():
|
for key, value in sorted(query.items()):
|
||||||
if key == "__raw__":
|
if key == "__raw__":
|
||||||
mongo_query.update(value)
|
mongo_query.update(value)
|
||||||
continue
|
continue
|
||||||
|
@ -8,6 +8,7 @@ import sys
|
|||||||
import unittest
|
import unittest
|
||||||
import uuid
|
import uuid
|
||||||
import warnings
|
import warnings
|
||||||
|
import operator
|
||||||
|
|
||||||
from nose.plugins.skip import SkipTest
|
from nose.plugins.skip import SkipTest
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
@ -452,7 +453,8 @@ class DocumentTest(unittest.TestCase):
|
|||||||
|
|
||||||
info = collection.index_information()
|
info = collection.index_information()
|
||||||
info = [value['key'] for key, value in info.iteritems()]
|
info = [value['key'] for key, value in info.iteritems()]
|
||||||
self.assertEqual([[(u'_id', 1)], [(u'_types', 1), (u'name', 1)]], info)
|
self.assertEqual([[('_id', 1)], [('_types', 1), ('name', 1)]],
|
||||||
|
sorted(info, key=operator.itemgetter(0)))
|
||||||
|
|
||||||
# Turn off inheritance
|
# Turn off inheritance
|
||||||
class Animal(Document):
|
class Animal(Document):
|
||||||
@ -473,7 +475,8 @@ class DocumentTest(unittest.TestCase):
|
|||||||
|
|
||||||
info = collection.index_information()
|
info = collection.index_information()
|
||||||
info = [value['key'] for key, value in info.iteritems()]
|
info = [value['key'] for key, value in info.iteritems()]
|
||||||
self.assertEqual([[(u'_id', 1)], [(u'_types', 1), (u'name', 1)]], info)
|
self.assertEqual([[(u'_id', 1)], [(u'_types', 1), (u'name', 1)]],
|
||||||
|
sorted(info, key=operator.itemgetter(0)))
|
||||||
|
|
||||||
info = collection.index_information()
|
info = collection.index_information()
|
||||||
indexes_to_drop = [key for key, value in info.iteritems() if '_types' in dict(value['key'])]
|
indexes_to_drop = [key for key, value in info.iteritems() if '_types' in dict(value['key'])]
|
||||||
@ -482,14 +485,16 @@ class DocumentTest(unittest.TestCase):
|
|||||||
|
|
||||||
info = collection.index_information()
|
info = collection.index_information()
|
||||||
info = [value['key'] for key, value in info.iteritems()]
|
info = [value['key'] for key, value in info.iteritems()]
|
||||||
self.assertEqual([[(u'_id', 1)]], info)
|
self.assertEqual([[(u'_id', 1)]],
|
||||||
|
sorted(info, key=operator.itemgetter(0)))
|
||||||
|
|
||||||
# Recreate indexes
|
# Recreate indexes
|
||||||
dog = Animal.objects.first()
|
dog = Animal.objects.first()
|
||||||
dog.save()
|
dog.save()
|
||||||
info = collection.index_information()
|
info = collection.index_information()
|
||||||
info = [value['key'] for key, value in info.iteritems()]
|
info = [value['key'] for key, value in info.iteritems()]
|
||||||
self.assertEqual([[(u'_id', 1)], [(u'name', 1),]], info)
|
self.assertEqual([[(u'_id', 1)], [(u'name', 1),]],
|
||||||
|
sorted(info, key=operator.itemgetter(0)))
|
||||||
|
|
||||||
Animal.drop_collection()
|
Animal.drop_collection()
|
||||||
|
|
||||||
@ -3412,8 +3417,8 @@ class ValidatorErrorTest(unittest.TestCase):
|
|||||||
try:
|
try:
|
||||||
User().validate()
|
User().validate()
|
||||||
except ValidationError, e:
|
except ValidationError, e:
|
||||||
expected_error_message = """ValidationError(Field is required: ['username', 'name'])"""
|
expected_error_message = """ValidationError(Field is required"""
|
||||||
self.assertEqual(e.message, expected_error_message)
|
self.assertTrue(expected_error_message in e.message)
|
||||||
self.assertEqual(e.to_dict(), {
|
self.assertEqual(e.to_dict(), {
|
||||||
'username': 'Field is required',
|
'username': 'Field is required',
|
||||||
'name': 'Field is required'})
|
'name': 'Field is required'})
|
||||||
|
@ -47,7 +47,7 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
self.assertEqual(QuerySet._transform_query(age__gt=20, age__lt=50),
|
self.assertEqual(QuerySet._transform_query(age__gt=20, age__lt=50),
|
||||||
{'age': {'$gt': 20, '$lt': 50}})
|
{'age': {'$gt': 20, '$lt': 50}})
|
||||||
self.assertEqual(QuerySet._transform_query(age=20, age__gt=50),
|
self.assertEqual(QuerySet._transform_query(age=20, age__gt=50),
|
||||||
{'age': 20})
|
{'$and': [{'age': {'$gt': 50}}, {'age': 20}]})
|
||||||
self.assertEqual(QuerySet._transform_query(friend__age__gte=30),
|
self.assertEqual(QuerySet._transform_query(friend__age__gte=30),
|
||||||
{'friend.age': {'$gte': 30}})
|
{'friend.age': {'$gte': 30}})
|
||||||
self.assertEqual(QuerySet._transform_query(name__exists=True),
|
self.assertEqual(QuerySet._transform_query(name__exists=True),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user