File: test_update_methods.py

package info (click to toggle)
python-beanie 2.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,480 kB
  • sloc: python: 14,427; makefile: 7; sh: 6
file content (81 lines) | stat: -rw-r--r-- 2,102 bytes parent folder | download | duplicates (2)
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
from beanie.odm.operators.update.general import Max
from beanie.odm.queries.update import UpdateMany, UpdateQuery
from tests.odm.models import Sample


async def test_set(session):
    q = Sample.find_many(Sample.integer == 1).set(
        {Sample.integer: 100}, session=session
    )

    assert isinstance(q, UpdateQuery)
    assert isinstance(q, UpdateMany)
    assert q.session == session

    assert q.update_query == {"$set": {"integer": 100}}

    q = (
        Sample.find_many(Sample.integer == 1)
        .update(Max({Sample.integer: 10}))
        .set({Sample.integer: 100})
    )

    assert isinstance(q, UpdateQuery)
    assert isinstance(q, UpdateMany)

    assert q.update_query == {
        "$max": {"integer": 10},
        "$set": {"integer": 100},
    }


async def test_current_date(session):
    q = Sample.find_many(Sample.integer == 1).current_date(
        {Sample.timestamp: "timestamp"}, session=session
    )

    assert isinstance(q, UpdateQuery)
    assert isinstance(q, UpdateMany)
    assert q.session == session

    assert q.update_query == {"$currentDate": {"timestamp": "timestamp"}}

    q = (
        Sample.find_many(Sample.integer == 1)
        .update(Max({Sample.integer: 10}))
        .current_date({Sample.timestamp: "timestamp"})
    )

    assert isinstance(q, UpdateQuery)
    assert isinstance(q, UpdateMany)

    assert q.update_query == {
        "$max": {"integer": 10},
        "$currentDate": {"timestamp": "timestamp"},
    }


async def test_inc(session):
    q = Sample.find_many(Sample.integer == 1).inc(
        {Sample.integer: 100}, session=session
    )

    assert isinstance(q, UpdateQuery)
    assert isinstance(q, UpdateMany)
    assert q.session == session

    assert q.update_query == {"$inc": {"integer": 100}}

    q = (
        Sample.find_many(Sample.integer == 1)
        .update(Max({Sample.integer: 10}))
        .inc({Sample.integer: 100})
    )

    assert isinstance(q, UpdateQuery)
    assert isinstance(q, UpdateMany)

    assert q.update_query == {
        "$max": {"integer": 10},
        "$inc": {"integer": 100},
    }