File: test_expression_fields.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 (80 lines) | stat: -rw-r--r-- 2,265 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
from beanie.odm.enums import SortDirection
from beanie.odm.operators.find.comparison import In, NotIn
from tests.odm.models import Sample


def test_nesting():
    assert Sample.id == "_id"

    q = Sample.find_many(Sample.integer == 1)
    assert q.get_filter_query() == {"integer": 1}
    assert Sample.integer == "integer"

    q = Sample.find_many(Sample.nested.integer == 1)
    assert q.get_filter_query() == {"nested.integer": 1}
    assert Sample.nested.integer == "nested.integer"

    q = Sample.find_many(Sample.union.s == "test")
    assert q.get_filter_query() == {"union.s": "test"}
    assert Sample.union.s == "union.s"

    q = Sample.find_many(Sample.nested.optional == None)  # noqa
    assert q.get_filter_query() == {"nested.optional": None}
    assert Sample.nested.optional == "nested.optional"

    q = Sample.find_many(Sample.nested.integer == 1).find_many(
        Sample.nested.union.s == "test"
    )
    assert q.get_filter_query() == {
        "$and": [{"nested.integer": 1}, {"nested.union.s": "test"}]
    }


def test_eq():
    q = Sample.find_many(Sample.integer == 1)
    assert q.get_filter_query() == {"integer": 1}


def test_gt():
    q = Sample.find_many(Sample.integer > 1)
    assert q.get_filter_query() == {"integer": {"$gt": 1}}


def test_gte():
    q = Sample.find_many(Sample.integer >= 1)
    assert q.get_filter_query() == {"integer": {"$gte": 1}}


def test_in():
    q = Sample.find_many(In(Sample.integer, [1, 2, 3, 4]))
    assert dict(q.get_filter_query()) == {"integer": {"$in": [1, 2, 3, 4]}}


def test_lt():
    q = Sample.find_many(Sample.integer < 1)
    assert q.get_filter_query() == {"integer": {"$lt": 1}}


def test_lte():
    q = Sample.find_many(Sample.integer <= 1)
    assert q.get_filter_query() == {"integer": {"$lte": 1}}


def test_ne():
    q = Sample.find_many(Sample.integer != 1)
    assert q.get_filter_query() == {"integer": {"$ne": 1}}


def test_nin():
    q = Sample.find_many(NotIn(Sample.integer, [1, 2, 3, 4]))
    assert dict(q.get_filter_query()) == {"integer": {"$nin": [1, 2, 3, 4]}}


def test_pos():
    q = +Sample.integer
    assert q == ("integer", SortDirection.ASCENDING)


def test_neg():
    q = -Sample.integer
    assert q == ("integer", SortDirection.DESCENDING)