1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
import asyncio
from tests.odm.models import DocumentTestModel
async def test_find_one(documents):
await documents(5)
doc = await DocumentTestModel.find_one(DocumentTestModel.test_int == 1)
await DocumentTestModel.find_one(DocumentTestModel.test_int == 1).set(
{DocumentTestModel.test_str: "NEW_VALUE"}
)
new_doc = await DocumentTestModel.find_one(DocumentTestModel.test_int == 1)
assert doc == new_doc
new_doc = await DocumentTestModel.find_one(
DocumentTestModel.test_int == 1, ignore_cache=True
)
assert doc != new_doc
await asyncio.sleep(10)
new_doc = await DocumentTestModel.find_one(DocumentTestModel.test_int == 1)
assert doc != new_doc
async def test_find_many(documents):
await documents(5)
docs = await DocumentTestModel.find(
DocumentTestModel.test_int > 1
).to_list()
await DocumentTestModel.find(DocumentTestModel.test_int > 1).set(
{DocumentTestModel.test_str: "NEW_VALUE"}
)
new_docs = await DocumentTestModel.find(
DocumentTestModel.test_int > 1
).to_list()
assert docs == new_docs
new_docs = await DocumentTestModel.find(
DocumentTestModel.test_int > 1, ignore_cache=True
).to_list()
assert docs != new_docs
await asyncio.sleep(10)
new_docs = await DocumentTestModel.find(
DocumentTestModel.test_int > 1
).to_list()
assert docs != new_docs
async def test_aggregation(documents):
await documents(5)
docs = await DocumentTestModel.aggregate(
[{"$group": {"_id": "$test_str", "total": {"$sum": "$test_int"}}}]
).to_list()
await DocumentTestModel.find(DocumentTestModel.test_int > 1).set(
{DocumentTestModel.test_str: "NEW_VALUE"}
)
new_docs = await DocumentTestModel.aggregate(
[{"$group": {"_id": "$test_str", "total": {"$sum": "$test_int"}}}]
).to_list()
assert docs == new_docs
new_docs = await DocumentTestModel.aggregate(
[{"$group": {"_id": "$test_str", "total": {"$sum": "$test_int"}}}],
ignore_cache=True,
).to_list()
assert docs != new_docs
await asyncio.sleep(10)
new_docs = await DocumentTestModel.aggregate(
[{"$group": {"_id": "$test_str", "total": {"$sum": "$test_int"}}}]
).to_list()
assert docs != new_docs
async def test_capacity(documents):
await documents(10)
docs = []
for i in range(10):
docs.append(
await DocumentTestModel.find_one(DocumentTestModel.test_int == i)
)
await DocumentTestModel.find_one(DocumentTestModel.test_int == 1).set(
{DocumentTestModel.test_str: "NEW_VALUE"}
)
await DocumentTestModel.find_one(DocumentTestModel.test_int == 9).set(
{DocumentTestModel.test_str: "NEW_VALUE"}
)
new_doc = await DocumentTestModel.find_one(DocumentTestModel.test_int == 1)
assert docs[1] != new_doc
new_doc = await DocumentTestModel.find_one(DocumentTestModel.test_int == 9)
assert docs[9] == new_doc
|