File size: 1,168 Bytes
4a51346
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from chromadb.db.base import ParameterValue, get_sql
import pypika


def test_value_params_default() -> None:
    t = pypika.Table("foo")

    original_query = (
        pypika.Query.from_(t)
        .select(t.a, t.b)
        .where(t.a == pypika.Parameter("?"))
        .where(t.b == pypika.Parameter("?"))
    )

    value_based_query = (
        pypika.Query.from_(t)
        .select(t.a, t.b)
        .where(t.a == ParameterValue(42))
        .where(t.b == ParameterValue(43))
    )
    sql, values = get_sql(value_based_query)
    assert sql == original_query.get_sql()
    assert values == (42, 43)


def test_value_params_numeric() -> None:
    t = pypika.Table("foo")
    original_query = (
        pypika.Query.from_(t)
        .select(t.a, t.b)
        .where(t.a == pypika.NumericParameter(1))
        .where(t.b == pypika.NumericParameter(2))
    )
    value_based_query = (
        pypika.Query.from_(t)
        .select(t.a, t.b)
        .where(t.a == ParameterValue(42))
        .where(t.b == ParameterValue(43))
    )
    sql, values = get_sql(value_based_query, formatstr=":{}")
    assert sql == original_query.get_sql()
    assert values == (42, 43)