added testcase for save create with shard key
This commit is contained in:
parent
bf1d04e399
commit
30a3c6a5b7
@ -501,7 +501,7 @@ class TestDocumentInstance(MongoDBTestCase):
|
|||||||
doc.reload()
|
doc.reload()
|
||||||
Animal.drop_collection()
|
Animal.drop_collection()
|
||||||
|
|
||||||
def test_update_shard_key_routing(self):
|
def test_save_update_shard_key_routing(self):
|
||||||
"""Ensures updating a doc with a specified shard_key includes it in
|
"""Ensures updating a doc with a specified shard_key includes it in
|
||||||
the query.
|
the query.
|
||||||
"""
|
"""
|
||||||
@ -529,6 +529,36 @@ class TestDocumentInstance(MongoDBTestCase):
|
|||||||
|
|
||||||
Animal.drop_collection()
|
Animal.drop_collection()
|
||||||
|
|
||||||
|
def test_save_create_shard_key_routing(self):
|
||||||
|
"""Ensures inserting a doc with a specified shard_key includes it in
|
||||||
|
the query.
|
||||||
|
"""
|
||||||
|
|
||||||
|
class Animal(Document):
|
||||||
|
_id = UUIDField(binary=False, primary_key=True, default=uuid.uuid4)
|
||||||
|
is_mammal = BooleanField()
|
||||||
|
name = StringField()
|
||||||
|
meta = {"shard_key": ("is_mammal",)}
|
||||||
|
|
||||||
|
Animal.drop_collection()
|
||||||
|
doc = Animal(is_mammal=True, name="Dog")
|
||||||
|
|
||||||
|
mongo_db = get_mongodb_version()
|
||||||
|
|
||||||
|
with query_counter() as q:
|
||||||
|
doc.save()
|
||||||
|
query_op = q.db.system.profile.find({"ns": "mongoenginetest.animal"})[0]
|
||||||
|
assert query_op["op"] == "command"
|
||||||
|
assert query_op["command"]["findAndModify"] == "animal"
|
||||||
|
if mongo_db <= MONGODB_34:
|
||||||
|
assert set(query_op["query"].keys()) == set(["_id", "is_mammal"])
|
||||||
|
else:
|
||||||
|
assert set(query_op["command"]["query"].keys()) == set(
|
||||||
|
["_id", "is_mammal"]
|
||||||
|
)
|
||||||
|
|
||||||
|
Animal.drop_collection()
|
||||||
|
|
||||||
def test_reload_with_changed_fields(self):
|
def test_reload_with_changed_fields(self):
|
||||||
"""Ensures reloading will not affect changed fields"""
|
"""Ensures reloading will not affect changed fields"""
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user