File tree Expand file tree Collapse file tree 3 files changed +49
-3
lines changed
tests/unit/rql/query_builder Expand file tree Collapse file tree 3 files changed +49
-3
lines changed Original file line number Diff line number Diff line change 1- from mpt_api_client .rql .query_builder import RQLQuery
1+ from mpt_api_client .rql .query_builder import Literal , RQLQuery
22
3- __all__ = ["RQLQuery" ] # noqa: WPS410
3+ __all__ = ["Literal" , " RQLQuery" ] # noqa: WPS410
Original file line number Diff line number Diff line change 66
77Numeric = int | float | Decimal
88
9- QueryValue = str | bool | dt .date | dt .datetime | Numeric
9+
10+ class Literal :
11+ """Wrapper for literal values in RQL queries."""
12+
13+ def __init__ (self , value : str ):
14+ self .value = value
15+
16+ @override
17+ def __str__ (self ) -> str :
18+ return f"'{ self .value } '"
19+
20+
21+ QueryValue = str | bool | dt .date | dt .datetime | Numeric | Literal # noqa: WPS221
1022
1123
1224def parse_kwargs (query_dict : dict [str , QueryValue ]) -> list [str ]: # noqa: WPS231
@@ -71,6 +83,7 @@ def query_value_str(value: QueryValue) -> str:
7183
7284 if isinstance (value , dt .date | dt .datetime ):
7385 return value .isoformat ()
86+
7487 # Matching: if isinstance(value, int | float | Decimal):
7588 return str (value )
7689
Original file line number Diff line number Diff line change 1+ from mpt_api_client .rql import Literal , RQLQuery
2+
3+
4+ def test_compare_property ():
5+ query = RQLQuery (agreement__product__id = "order.product.id" )
6+
7+ result = str (query )
8+
9+ assert result == "eq(agreement.product.id,order.product.id)"
10+
11+
12+ def test_compare_quoted ():
13+ query = RQLQuery (agreement__product__id = Literal ("order.product.id" ))
14+
15+ result = str (query )
16+
17+ assert result == "eq(agreement.product.id,'order.product.id')"
18+
19+
20+ def test_ne_quoted ():
21+ query = RQLQuery ("agreement.product.id" )
22+
23+ result = str (query .ne (Literal ("order.product.id" )))
24+
25+ assert result == "ne(agreement.product.id,'order.product.id')"
26+
27+
28+ def test_ne_property ():
29+ query = RQLQuery ("agreement.product.id" )
30+
31+ result = str (query .ne ("order.product.id" ))
32+
33+ assert result == "ne(agreement.product.id,order.product.id)"
You can’t perform that action at this time.
0 commit comments