Added test and fix for delete with write_concern w:0

This commit is contained in:
Matthieu Rigal 2015-06-21 03:40:45 +02:00
parent 5fa5284b58
commit bcc4d4e8c6
3 changed files with 8 additions and 1 deletions

View File

@ -26,6 +26,7 @@ Changes in 0.9.X - DEV
- Removed get_or_create() deprecated since 0.8.0. #300 - Removed get_or_create() deprecated since 0.8.0. #300
- Capped collection multiple of 256. #1011 - Capped collection multiple of 256. #1011
- Added `BaseQuerySet.aggregate_sum` and `BaseQuerySet.aggregate_average` methods. - Added `BaseQuerySet.aggregate_sum` and `BaseQuerySet.aggregate_average` methods.
- Fix for delete with write_concern {'w': 0}. #1008
Changes in 0.9.0 Changes in 0.9.0
================ ================

View File

@ -418,7 +418,8 @@ class BaseQuerySet(object):
**{'pull_all__%s' % field_name: self}) **{'pull_all__%s' % field_name: self})
result = queryset._collection.remove(queryset._query, **write_concern) result = queryset._collection.remove(queryset._query, **write_concern)
return result["n"] if result:
return result.get("n")
def update(self, upsert=False, multi=True, write_concern=None, def update(self, upsert=False, multi=True, write_concern=None,
full_result=False, **update): full_result=False, **update):

View File

@ -1634,6 +1634,11 @@ class QuerySetTest(unittest.TestCase):
self.Person.objects()[:1].delete() self.Person.objects()[:1].delete()
self.assertEqual(1, BlogPost.objects.count()) self.assertEqual(1, BlogPost.objects.count())
def test_limit_with_write_concern_0(self):
p1 = self.Person(name="User Z", age=20).save()
p1.delete(w=0)
def test_reference_field_find(self): def test_reference_field_find(self):
"""Ensure cascading deletion of referring documents from the database. """Ensure cascading deletion of referring documents from the database.
""" """