Fixing PY3.3 test cases

This commit is contained in:
Ross Lawley 2013-01-10 11:08:07 +00:00
parent 06681a453f
commit 87c965edd3
3 changed files with 21 additions and 10 deletions

View File

@ -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

View File

@ -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'})

View File

@ -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),