Removed pool_size from connect, minor tidyup

This commit is contained in:
Harry Marr 2010-02-04 01:44:52 +00:00
parent df5b1f3806
commit 89f505bb13
6 changed files with 16 additions and 10 deletions

View File

@ -7,7 +7,6 @@ __all__ = ['ConnectionError', 'connect']
_connection_settings = {
'host': 'localhost',
'port': 27017,
'pool_size': 1,
}
_connection = None

View File

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

View File

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

View File

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

View File

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

View File

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