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 functools import partial
|
||||
|
||||
from mongoengine.python_support import product, reduce
|
||||
from mongoengine.python_support import product, reduce, PY3
|
||||
|
||||
import pymongo
|
||||
from bson.code import Code
|
||||
from bson.son import SON
|
||||
|
||||
from mongoengine import signals
|
||||
|
||||
@ -388,7 +389,12 @@ class QuerySet(object):
|
||||
if self._mongo_query is None:
|
||||
self._mongo_query = self._query_obj.to_query(self._document)
|
||||
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
|
||||
|
||||
def ensure_index(self, key_or_list, drop_dups=False, background=False,
|
||||
@ -704,7 +710,7 @@ class QuerySet(object):
|
||||
|
||||
mongo_query = {}
|
||||
merge_query = defaultdict(list)
|
||||
for key, value in query.items():
|
||||
for key, value in sorted(query.items()):
|
||||
if key == "__raw__":
|
||||
mongo_query.update(value)
|
||||
continue
|
||||
|
@ -8,6 +8,7 @@ import sys
|
||||
import unittest
|
||||
import uuid
|
||||
import warnings
|
||||
import operator
|
||||
|
||||
from nose.plugins.skip import SkipTest
|
||||
from datetime import datetime
|
||||
@ -452,7 +453,8 @@ class DocumentTest(unittest.TestCase):
|
||||
|
||||
info = collection.index_information()
|
||||
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
|
||||
class Animal(Document):
|
||||
@ -473,7 +475,8 @@ class DocumentTest(unittest.TestCase):
|
||||
|
||||
info = collection.index_information()
|
||||
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()
|
||||
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 = [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
|
||||
dog = Animal.objects.first()
|
||||
dog.save()
|
||||
info = collection.index_information()
|
||||
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()
|
||||
|
||||
@ -3412,8 +3417,8 @@ class ValidatorErrorTest(unittest.TestCase):
|
||||
try:
|
||||
User().validate()
|
||||
except ValidationError, e:
|
||||
expected_error_message = """ValidationError(Field is required: ['username', 'name'])"""
|
||||
self.assertEqual(e.message, expected_error_message)
|
||||
expected_error_message = """ValidationError(Field is required"""
|
||||
self.assertTrue(expected_error_message in e.message)
|
||||
self.assertEqual(e.to_dict(), {
|
||||
'username': '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),
|
||||
{'age': {'$gt': 20, '$lt': 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),
|
||||
{'friend.age': {'$gte': 30}})
|
||||
self.assertEqual(QuerySet._transform_query(name__exists=True),
|
||||
|
Loading…
x
Reference in New Issue
Block a user