reformat w black
This commit is contained in:
parent
ba34589065
commit
ff4d57032a
@ -264,4 +264,6 @@ def set_read_write_concern(collection, write_concerns, read_concern):
|
|||||||
combined_write_concerns = dict(collection.write_concern.document.items())
|
combined_write_concerns = dict(collection.write_concern.document.items())
|
||||||
combined_write_concerns.update(write_concerns)
|
combined_write_concerns.update(write_concerns)
|
||||||
|
|
||||||
yield collection.with_options(write_concern=WriteConcern(**combined_write_concerns), read_concern=read_concern)
|
yield collection.with_options(
|
||||||
|
write_concern=WriteConcern(**combined_write_concerns), read_concern=read_concern
|
||||||
|
)
|
||||||
|
@ -19,7 +19,11 @@ from mongoengine import signals
|
|||||||
from mongoengine.base import get_document
|
from mongoengine.base import get_document
|
||||||
from mongoengine.common import _import_class
|
from mongoengine.common import _import_class
|
||||||
from mongoengine.connection import get_db
|
from mongoengine.connection import get_db
|
||||||
from mongoengine.context_managers import set_write_concern, set_read_write_concern, switch_db
|
from mongoengine.context_managers import (
|
||||||
|
set_write_concern,
|
||||||
|
set_read_write_concern,
|
||||||
|
switch_db,
|
||||||
|
)
|
||||||
from mongoengine.errors import (
|
from mongoengine.errors import (
|
||||||
BulkWriteError,
|
BulkWriteError,
|
||||||
InvalidQueryError,
|
InvalidQueryError,
|
||||||
@ -492,7 +496,13 @@ class BaseQuerySet(object):
|
|||||||
return result.deleted_count
|
return result.deleted_count
|
||||||
|
|
||||||
def update(
|
def update(
|
||||||
self, upsert=False, multi=True, write_concern=None, read_concern=None, full_result=False, **update
|
self,
|
||||||
|
upsert=False,
|
||||||
|
multi=True,
|
||||||
|
write_concern=None,
|
||||||
|
read_concern=None,
|
||||||
|
full_result=False,
|
||||||
|
**update
|
||||||
):
|
):
|
||||||
"""Perform an atomic update on the fields matched by the query.
|
"""Perform an atomic update on the fields matched by the query.
|
||||||
|
|
||||||
@ -531,7 +541,9 @@ class BaseQuerySet(object):
|
|||||||
else:
|
else:
|
||||||
update["$set"] = {"_cls": queryset._document._class_name}
|
update["$set"] = {"_cls": queryset._document._class_name}
|
||||||
try:
|
try:
|
||||||
with set_read_write_concern(queryset._collection, write_concern, read_concern) as collection:
|
with set_read_write_concern(
|
||||||
|
queryset._collection, write_concern, read_concern
|
||||||
|
) as collection:
|
||||||
update_func = collection.update_one
|
update_func = collection.update_one
|
||||||
if multi:
|
if multi:
|
||||||
update_func = collection.update_many
|
update_func = collection.update_many
|
||||||
|
@ -4671,41 +4671,33 @@ class TestQueryset(unittest.TestCase):
|
|||||||
bars = list(Bar.objects.read_concern(None))
|
bars = list(Bar.objects.read_concern(None))
|
||||||
assert bars == [bar]
|
assert bars == [bar]
|
||||||
|
|
||||||
bars = Bar.objects.read_concern(ReadConcern(level='local'))
|
bars = Bar.objects.read_concern(ReadConcern(level="local"))
|
||||||
assert bars._read_concern == ReadConcern(level='local')
|
assert bars._read_concern == ReadConcern(level="local")
|
||||||
assert (
|
assert bars._cursor.collection.read_concern == ReadConcern(level="local")
|
||||||
bars._cursor.collection.read_concern
|
|
||||||
== ReadConcern(level='local')
|
|
||||||
)
|
|
||||||
|
|
||||||
# Make sure that `.read_concern(...)` does accept string values.
|
# Make sure that `.read_concern(...)` does accept string values.
|
||||||
with pytest.raises(TypeError):
|
with pytest.raises(TypeError):
|
||||||
Bar.objects.read_concern('local')
|
Bar.objects.read_concern("local")
|
||||||
|
|
||||||
def assert_read_concern(qs, expected_read_concern):
|
def assert_read_concern(qs, expected_read_concern):
|
||||||
assert qs._read_concern == expected_read_concern
|
assert qs._read_concern == expected_read_concern
|
||||||
assert qs._cursor.collection.read_concern == expected_read_concern
|
assert qs._cursor.collection.read_concern == expected_read_concern
|
||||||
|
|
||||||
# Make sure read concern is respected after a `.skip(...)`.
|
# Make sure read concern is respected after a `.skip(...)`.
|
||||||
bars = Bar.objects.skip(1).read_concern(ReadConcern('majority'))
|
bars = Bar.objects.skip(1).read_concern(ReadConcern("majority"))
|
||||||
assert_read_concern(bars, ReadConcern('majority'))
|
assert_read_concern(bars, ReadConcern("majority"))
|
||||||
|
|
||||||
# Make sure read concern is respected after a `.limit(...)`.
|
# Make sure read concern is respected after a `.limit(...)`.
|
||||||
bars = Bar.objects.limit(1).read_concern(ReadConcern('majority'))
|
bars = Bar.objects.limit(1).read_concern(ReadConcern("majority"))
|
||||||
assert_read_concern(bars, ReadConcern('majority'))
|
assert_read_concern(bars, ReadConcern("majority"))
|
||||||
|
|
||||||
# Make sure read concern is respected after an `.order_by(...)`.
|
# Make sure read concern is respected after an `.order_by(...)`.
|
||||||
bars = Bar.objects.order_by("txt").read_concern(
|
bars = Bar.objects.order_by("txt").read_concern(ReadConcern("majority"))
|
||||||
ReadConcern('majority')
|
assert_read_concern(bars, ReadConcern("majority"))
|
||||||
)
|
|
||||||
assert_read_concern(bars, ReadConcern('majority'))
|
|
||||||
|
|
||||||
# Make sure read concern is respected after a `.hint(...)`.
|
# Make sure read concern is respected after a `.hint(...)`.
|
||||||
bars = Bar.objects.hint([("txt", 1)]).read_concern(
|
bars = Bar.objects.hint([("txt", 1)]).read_concern(ReadConcern("majority"))
|
||||||
ReadConcern('majority')
|
assert_read_concern(bars, ReadConcern("majority"))
|
||||||
)
|
|
||||||
assert_read_concern(bars, ReadConcern('majority'))
|
|
||||||
|
|
||||||
|
|
||||||
def test_json_simple(self):
|
def test_json_simple(self):
|
||||||
class Embedded(EmbeddedDocument):
|
class Embedded(EmbeddedDocument):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user