From 775c8624d42a4f167d20cd792c434b84fd69ed9d Mon Sep 17 00:00:00 2001 From: mrigal Date: Thu, 9 Apr 2015 03:46:42 +0200 Subject: [PATCH] change to try to address issues due to new save() behaviour, not satisfying, some tests are still failing --- mongoengine/document.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mongoengine/document.py b/mongoengine/document.py index 01083d24..c9304c2b 100644 --- a/mongoengine/document.py +++ b/mongoengine/document.py @@ -1,11 +1,8 @@ -import warnings -import hashlib import pymongo import re from pymongo.read_preferences import ReadPreference -from bson import ObjectId from bson.dbref import DBRef from mongoengine import signals from mongoengine.common import _import_class @@ -19,7 +16,7 @@ from mongoengine.base import ( ALLOW_INHERITANCE, get_document ) -from mongoengine.errors import ValidationError, InvalidQueryError, InvalidDocumentError +from mongoengine.errors import InvalidQueryError, InvalidDocumentError from mongoengine.queryset import (OperationError, NotUniqueError, QuerySet, transform) from mongoengine.connection import get_db, DEFAULT_CONNECTION_NAME @@ -296,7 +293,12 @@ class Document(BaseDocument): doc = self.to_mongo() - created = ('_id' not in doc or self._created or force_insert) + # I think the self._created flag is not necessarily required in PyMongo3 + # but may cause test test_collection_name_and_primary to fail + if pymongo.version_tuple[0] < 3: + created = ('_id' not in doc or self._created or force_insert) + else: + created = ('_id' not in doc or force_insert) signals.pre_save_post_validation.send(self.__class__, document=self, created=created)