Compare commits

..

4 Commits

Author SHA1 Message Date
Bastien Gérard
bdd6041a5c Merge pull request #1960 from bagerard/bump_version_0_16_2
bump version to 0.16.2
2018-11-21 13:45:13 +01:00
Bastien Gérard
1894003f8a bump version to 0.16.2 2018-11-21 12:45:16 +01:00
erdenezul
220513ae42 Merge pull request #1959 from bagerard/fix_write_concern_default_param
Fix but with save(write_concern=None) - introduced in 0.16.1
2018-11-21 09:15:00 +08:00
Bastien Gérard
fcbabbe357 Fix but with save(write_concern=None) - introduced in 0.16.1 2018-11-21 00:03:08 +01:00
4 changed files with 16 additions and 4 deletions

View File

@@ -6,6 +6,11 @@ Development
===========
- (Fill this out as you fix issues and develop your features).
=================
Changes in 0.16.2
=================
- Fix .save() that fails when called with write_concern=None (regression of 0.16.1) #1958
=================
Changes in 0.16.1
=================

View File

@@ -23,7 +23,7 @@ __all__ = (list(document.__all__) + list(fields.__all__) +
list(signals.__all__) + list(errors.__all__))
VERSION = (0, 16, 1)
VERSION = (0, 16, 2)
def get_version():

View File

@@ -299,7 +299,7 @@ class Document(six.with_metaclass(TopLevelDocumentMetaclass, BaseDocument)):
return True
def save(self, force_insert=False, validate=True, clean=True,
write_concern={'w': 1}, cascade=None, cascade_kwargs=None,
write_concern=None, cascade=None, cascade_kwargs=None,
_refs=None, save_condition=None, signal_kwargs=None, **kwargs):
"""Save the :class:`~mongoengine.Document` to the database. If the
document already exists, it will be updated, otherwise it will be
@@ -361,6 +361,9 @@ class Document(six.with_metaclass(TopLevelDocumentMetaclass, BaseDocument)):
if validate:
self.validate(clean=clean)
if write_concern is None:
write_concern = {'w': 1}
doc = self.to_mongo()
created = ('_id' not in doc or self._created or force_insert)

View File

@@ -400,13 +400,17 @@ class QuerySetTest(unittest.TestCase):
self.Person.drop_collection()
write_concern = {"fsync": True}
author = self.Person.objects.create(name='Test User')
author.save(write_concern=write_concern)
# Ensure no regression of #1958
author = self.Person(name='Test User2')
author.save(write_concern=None) # will default to {w: 1}
result = self.Person.objects.update(
set__name='Ross', write_concern={"w": 1})
self.assertEqual(result, 1)
self.assertEqual(result, 2)
result = self.Person.objects.update(
set__name='Ross', write_concern={"w": 0})
self.assertEqual(result, None)