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)