Add tests for set_write_conern and set_read_write_concern

This commit is contained in:
Agustin Barto 2020-03-17 19:37:21 -03:00
parent 3d80637fa4
commit 4c62a060f0

View File

@ -10,11 +10,59 @@ from mongoengine.context_managers import (
query_counter, query_counter,
switch_collection, switch_collection,
switch_db, switch_db,
set_write_concern,
set_read_write_concern,
) )
from mongoengine.pymongo_support import count_documents from mongoengine.pymongo_support import count_documents
class TestContextManagers: class TestContextManagers:
def test_set_write_concern(self):
connect("mongoenginetest")
class User(Document):
name = StringField()
collection = User._get_collection()
original_write_concern = collection.write_concern
with set_write_concern(
collection, {"w": "majority", "j": True, "wtimeout": 1234}
) as updated_collection:
assert updated_collection.write_concern.document == {
"w": "majority",
"j": True,
"wtimeout": 1234,
}
assert original_write_concern.document == collection.write_concern.document
def test_set_read_write_concern(self):
connect("mongoenginetest")
class User(Document):
name = StringField()
collection = User._get_collection()
original_read_concern = collection.read_concern
original_write_concern = collection.write_concern
with set_read_write_concern(
collection,
{"w": "majority", "j": True, "wtimeout": 1234},
{"level": "local"},
) as update_collection:
assert update_collection.read_concern.document == {"level": "local"}
assert update_collection.write_concern.document == {
"w": "majority",
"j": True,
"wtimeout": 1234,
}
assert original_read_concern.document == collection.read_concern.document
assert original_write_concern.document == collection.write_concern.document
def test_switch_db_context_manager(self): def test_switch_db_context_manager(self):
connect("mongoenginetest") connect("mongoenginetest")
register_connection("testdb-1", "mongoenginetest2") register_connection("testdb-1", "mongoenginetest2")