From e86cf962e99e15eaa59e14380ff50fd9e25ac6fc Mon Sep 17 00:00:00 2001 From: Erdenezul Batmunkh Date: Wed, 21 Aug 2019 13:08:30 +0200 Subject: [PATCH 1/3] Change misleading error message --- mongoengine/queryset/base.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mongoengine/queryset/base.py b/mongoengine/queryset/base.py index ba3ac95a..46b20d78 100644 --- a/mongoengine/queryset/base.py +++ b/mongoengine/queryset/base.py @@ -355,8 +355,8 @@ class BaseQuerySet(object): except pymongo.errors.BulkWriteError as err: # inserting documents that already have an _id field will # give huge performance debt or raise - message = u"Document must not have _id value before bulk write (%s)" - raise NotUniqueError(message % six.text_type(err)) + message = u"Bulk write error: (%s)" + raise NotUniqueError(message % six.text_type(err.details)) except pymongo.errors.OperationFailure as err: message = "Could not save document (%s)" if re.match("^E1100[01] duplicate key", six.text_type(err)): From a06e605e671bfcbe336addd780ae7c9e79069b99 Mon Sep 17 00:00:00 2001 From: Erdenezul Batmunkh Date: Thu, 29 Aug 2019 11:11:27 +0200 Subject: [PATCH 2/3] Add BulkWriteError exception --- mongoengine/errors.py | 5 +++++ mongoengine/queryset/base.py | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mongoengine/errors.py b/mongoengine/errors.py index 9852f2a1..b76243d3 100644 --- a/mongoengine/errors.py +++ b/mongoengine/errors.py @@ -12,6 +12,7 @@ __all__ = ( "InvalidQueryError", "OperationError", "NotUniqueError", + "BulkWriteError", "FieldDoesNotExist", "ValidationError", "SaveConditionError", @@ -51,6 +52,10 @@ class NotUniqueError(OperationError): pass +class BulkWriteError(OperationError): + pass + + class SaveConditionError(OperationError): pass diff --git a/mongoengine/queryset/base.py b/mongoengine/queryset/base.py index 46b20d78..6d3fb41a 100644 --- a/mongoengine/queryset/base.py +++ b/mongoengine/queryset/base.py @@ -20,6 +20,7 @@ from mongoengine.common import _import_class from mongoengine.connection import get_db from mongoengine.context_managers import set_write_concern, switch_db from mongoengine.errors import ( + BulkWriteError, InvalidQueryError, LookUpError, NotUniqueError, @@ -356,7 +357,7 @@ class BaseQuerySet(object): # inserting documents that already have an _id field will # give huge performance debt or raise message = u"Bulk write error: (%s)" - raise NotUniqueError(message % six.text_type(err.details)) + raise BulkWriteError(message % six.text_type(err.details)) except pymongo.errors.OperationFailure as err: message = "Could not save document (%s)" if re.match("^E1100[01] duplicate key", six.text_type(err)): From 1dbe7a3163033703720f4ccd3c6391b5f3f8d490 Mon Sep 17 00:00:00 2001 From: Erdenezul Batmunkh Date: Tue, 3 Sep 2019 16:17:09 +0200 Subject: [PATCH 3/3] Add log in changelog --- docs/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/changelog.rst b/docs/changelog.rst index 55fa4b25..5422f113 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -18,6 +18,7 @@ Development - Fix updating/modifying/deleting/reloading a document that's sharded by a field with ``db_field`` specified. #2125 - ``ListField`` now accepts an optional ``max_length`` parameter. #2110 - The codebase is now formatted using ``black``. #2109 +- In bulk write insert, the detailed error message would raise in exception. Changes in 0.18.2 =================