diff --git a/mongoengine/connection.py b/mongoengine/connection.py index ee8d735b..da8f2baf 100644 --- a/mongoengine/connection.py +++ b/mongoengine/connection.py @@ -7,7 +7,6 @@ __all__ = ['ConnectionError', 'connect'] _connection_settings = { 'host': 'localhost', 'port': 27017, - 'pool_size': 1, } _connection = None diff --git a/mongoengine/document.py b/mongoengine/document.py index 357c8bc7..8fdb88db 100644 --- a/mongoengine/document.py +++ b/mongoengine/document.py @@ -78,9 +78,9 @@ class Document(BaseDocument): object_id = collection.save(doc, safe=safe) except pymongo.errors.OperationFailure, err: message = 'Could not save document (%s)' - if u'duplicate key' in err.message: + if u'duplicate key' in unicode(err): message = u'Tried to save duplicate unique keys (%s)' - raise OperationError(message % err.message) + raise OperationError(message % unicode(err)) id_field = self._meta['id_field'] self[id_field] = self._fields[id_field].to_python(object_id) @@ -95,7 +95,8 @@ class Document(BaseDocument): try: self.__class__.objects(**{id_field: object_id}).delete(safe=safe) except pymongo.errors.OperationFailure, err: - raise OperationError(u'Could not delete document (%s)' % err.message) + message = u'Could not delete document (%s)' % err.message + raise OperationError(message) def reload(self): """Reloads all attributes from the database. diff --git a/mongoengine/fields.py b/mongoengine/fields.py index a0374c4e..4695bf81 100644 --- a/mongoengine/fields.py +++ b/mongoengine/fields.py @@ -71,7 +71,8 @@ class FloatField(BaseField): return float(value) def validate(self, value): - if isinstance(value, int): value = float(value) + if isinstance(value, int): + value = float(value) assert isinstance(value, float) if self.min_value is not None and value < self.min_value: diff --git a/mongoengine/queryset.py b/mongoengine/queryset.py index a42690a5..e88804f9 100644 --- a/mongoengine/queryset.py +++ b/mongoengine/queryset.py @@ -520,9 +520,10 @@ class QuerySet(object): self._collection.update(self._query, update, safe=safe_update, multi=True) except pymongo.errors.OperationFailure, err: - if err.message == u'multi not coded yet': - raise OperationError(u'update() method requires MongoDB 1.1.3+') - raise OperationError(u'Update failed (%s)' % err.message) + if unicode(err) == u'multi not coded yet': + message = u'update() method requires MongoDB 1.1.3+' + raise OperationError(message) + raise OperationError(u'Update failed (%s)' % unicode(err)) def update_one(self, safe_update=True, **update): """Perform an atomic update on first field matched by the query. diff --git a/tests/fields.py b/tests/fields.py index 7949cc36..b35a9142 100644 --- a/tests/fields.py +++ b/tests/fields.py @@ -106,7 +106,7 @@ class FieldTest(unittest.TestCase): person.height = 1.89 person.validate() - person.height = 2 + person.height = '2.0' self.assertRaises(ValidationError, person.validate) person.height = 0.01 self.assertRaises(ValidationError, person.validate) diff --git a/tests/queryset.py b/tests/queryset.py index 6d45bdae..b6e958a2 100644 --- a/tests/queryset.py +++ b/tests/queryset.py @@ -21,7 +21,7 @@ class QuerySetTest(unittest.TestCase): """Ensure that a QuerySet is correctly initialised by QuerySetManager. """ self.assertTrue(isinstance(self.Person.objects, QuerySet)) - self.assertEqual(self.Person.objects._collection.name(), + self.assertEqual(self.Person.objects._collection.name, self.Person._meta['collection']) self.assertTrue(isinstance(self.Person.objects._collection, pymongo.collection.Collection)) @@ -294,6 +294,8 @@ class QuerySetTest(unittest.TestCase): BlogPost.drop_collection() def test_q(self): + """Ensure that Q objects may be used to query for documents. + """ class BlogPost(Document): publish_date = DateTimeField() published = BooleanField() @@ -618,6 +620,8 @@ class QuerySetTest(unittest.TestCase): class QTest(unittest.TestCase): def test_or_and(self): + """Ensure that Q objects may be combined correctly. + """ q1 = Q(name='test') q2 = Q(age__gte=18)