From 6997e0247665605ba872f82254db11328739829d Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Mon, 10 Dec 2012 08:23:41 +0000 Subject: [PATCH] Fixed EmailField so can add extra validation (MongoEngine/mongoengine#173, MongoEngine/mongoengine#174, MongoEngine/mongoengine#187) --- AUTHORS | 2 +- docs/changelog.rst | 2 ++ mongoengine/queryset.py | 2 +- tests/test_queryset.py | 4 ++++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index 6ba2f88d..5e6f9e7f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -106,7 +106,7 @@ that much better: * Adam Reeve * Anthony Nemitz * deignacio - * shaunduncan + * Shaun Duncan * Meir Kriheli * Andrey Fedoseev * aparajita diff --git a/docs/changelog.rst b/docs/changelog.rst index 355449f2..3dff3bd5 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -5,6 +5,8 @@ Changelog Changes in 0.7.8 ================ +- Fixed EmailField so can add extra validation (MongoEngine/mongoengine#173, MongoEngine/mongoengine#174, MongoEngine/mongoengine#187) +- Fixed bulk inserts can now handle custom pk's (MongoEngine/mongoengine#192) - Added as_pymongo method to return raw or cast results from pymongo (MongoEngine/mongoengine#193) Changes in 0.7.7 diff --git a/mongoengine/queryset.py b/mongoengine/queryset.py index d12f3bb4..f0609ff9 100644 --- a/mongoengine/queryset.py +++ b/mongoengine/queryset.py @@ -929,7 +929,7 @@ class QuerySet(object): if not isinstance(doc, self._document): msg = "Some documents inserted aren't instances of %s" % str(self._document) raise OperationError(msg) - if doc.pk: + if doc.pk and not doc._created: msg = "Some documents have ObjectIds use doc.update() instead" raise OperationError(msg) raw.append(doc.to_mongo()) diff --git a/tests/test_queryset.py b/tests/test_queryset.py index 09a48233..aed606d0 100644 --- a/tests/test_queryset.py +++ b/tests/test_queryset.py @@ -591,6 +591,10 @@ class QuerySetTest(unittest.TestCase): self.assertRaises(OperationError, throw_operation_error) + # Test can insert new doc + new_post = Blog(title="code", id=ObjectId()) + Blog.objects.insert(new_post) + # test handles other classes being inserted def throw_operation_error_wrong_doc(): class Author(Document):