Clarify unack'd write concern not returning the deleted count [ci skip]
This commit is contained in:
parent
ffedd33101
commit
91899acfe5
@ -483,6 +483,10 @@ class BaseQuerySet(object):
|
|||||||
|
|
||||||
with set_write_concern(queryset._collection, write_concern) as collection:
|
with set_write_concern(queryset._collection, write_concern) as collection:
|
||||||
result = collection.delete_many(queryset._query)
|
result = collection.delete_many(queryset._query)
|
||||||
|
|
||||||
|
# If we're using an unack'd write concern, we don't really know how
|
||||||
|
# many items have been deleted at this point, hence we only return
|
||||||
|
# the count for ack'd ops.
|
||||||
if result.acknowledged:
|
if result.acknowledged:
|
||||||
return result.deleted_count
|
return result.deleted_count
|
||||||
|
|
||||||
|
@ -1858,7 +1858,11 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
self.assertEqual(1, BlogPost.objects.count())
|
self.assertEqual(1, BlogPost.objects.count())
|
||||||
|
|
||||||
def test_delete_edge_case_with_write_concern_0_return_None(self):
|
def test_delete_edge_case_with_write_concern_0_return_None(self):
|
||||||
"""Return None when write is unacknowledged"""
|
"""Return None if the delete operation is unacknowledged.
|
||||||
|
|
||||||
|
If we use an unack'd write concern, we don't really know how many
|
||||||
|
documents have been deleted.
|
||||||
|
"""
|
||||||
p1 = self.Person(name="User Z", age=20).save()
|
p1 = self.Person(name="User Z", age=20).save()
|
||||||
del_result = p1.delete(w=0)
|
del_result = p1.delete(w=0)
|
||||||
self.assertEqual(None, del_result)
|
self.assertEqual(None, del_result)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user