def test_bad_field_lookup(self, orm_models): query = Query("app.model", [QueryField("fa__count__bob")], []) bound_query = BoundQuery.bind(query, orm_models) assert [f.path for f in bound_query.fields] == []
def test_bad_fk_field_aggregate(self, orm_models): query = Query("app.model", [QueryField("tom__jones__yata")], []) bound_query = BoundQuery.bind(query, orm_models) assert [f.path for f in bound_query.fields] == []
def test_from_request_field_no_priority(self): q = Query.from_request("app.model", "fn+", []) assert q == Query("app.model", [QueryField("fn")], [])
def test_from_request_field_pivoted(self): q = Query.from_request("app.model", "&fn", QueryDict("")) assert q == Query("app.model", [QueryField("fn", True)], [])
def test_filter_calculated_field(self, orm_models): query = Query("app.model", [], [QueryFilter("fn", "equals", "fred")]) bound_query = BoundQuery.bind(query, orm_models) assert [f.path for f in bound_query.filters] == []
def get_product_flat(*args, **kwargs): query = Query.from_request("core.Product", *args) bound_query = BoundQuery.bind(query, orm_models) data = get_results(req, bound_query, orm_models) return flatten_table(bound_query.fields, data["rows"])
def test_from_request_filter_no_lookup(self): q = Query.from_request("app.model", "", QueryDict("joe=tom")) assert q == Query("app.model", [], [])
def test_bad_filter(self, orm_models): query = Query("app.model", [], [QueryFilter("yata", "equals", "fred")]) bound_query = BoundQuery.bind(query, orm_models) assert [f.path for f in bound_query.filters] == []
def test_from_request_with_missing(self): q = Query.from_request("app.model", ",,", QueryDict("")) assert q == Query("app.model", [], [])
def test_from_request_filter_no_value(self): q = Query.from_request("app.model", "", QueryDict("joe__equals=")) assert q == Query("app.model", [], [QueryFilter("joe", "equals", "")])
def test_from_request_with_related_filter(self): q = Query.from_request("app.model", "", QueryDict("bob__jones__equals=fred")) assert q == Query("app.model", [], [QueryFilter("bob__jones", "equals", "fred")])
def test_from_request_with_low_limit(self, query): q = Query.from_request("app.model", "fa+1,fd-0,fn", QueryDict("limit=0&bob__equals=fred")) query.limit = 1 assert q == query
def test_from_request_duplicate_field(self, query): q = Query.from_request("app.model", "fa+1,fd-0,fn,&fa-2", QueryDict("bob__equals=fred")) assert q == query
def test_aggregate(self, orm_models): query = Query("app.model", [QueryField("tom__jones__count")], []) bound_query = BoundQuery.bind(query, orm_models) assert [f.path for f in bound_query.fields] == [["tom", "jones", "count"]]
def test_from_request_filter_bad_lookup(self): q = Query.from_request("app.model", "", QueryDict("joe__blah=123")) assert q == Query("app.model", [], [QueryFilter("joe", "blah", "123")])
def test_piovt(self, orm_models): query = Query("app.model", [QueryField("tom__jones", pivoted=True)], []) bound_query = BoundQuery.bind(query, orm_models) assert [f.pivoted for f in bound_query.fields] == [True]
def test_from_request_filter_no_name(self): q = Query.from_request("app.model", "", QueryDict("=123")) assert q == Query("app.model", [], [])
def test_fk(self, orm_models): query = Query("app.model", [QueryField("tom")], []) bound_query = BoundQuery.bind(query, orm_models) assert [f.path for f in bound_query.fields] == []
def test_from_request_field_no_name(self): q = Query.from_request("app.model", "+2", QueryDict("")) assert q == Query("app.model", [QueryField("", False, ASC, 2)], [])
def helper(queries, *args, **kwargs): query = Query.from_request("core.Product", *args, **kwargs) bound_query = BoundQuery.bind(query, orm_models) with django_assert_num_queries(queries): data = get_results(req, bound_query, orm_models) return flatten_table(bound_query.fields, data["rows"])
def test_from_request_field_bad_priority(self): q = Query.from_request("app.model", "fn+x", QueryDict("")) assert q == Query("app.model", [QueryField("fn")], [])
def test_from_request(self, query): q = Query.from_request("app.model", "fa+1,fd-0,fn", [("bob__equals", "fred")]) assert q == query
def test_from_request_with_low_limit(self, query): q = Query.from_request("app.model", "fa+1,fd-0,fn", [("limit", "0"), ("bob__equals", "fred")]) query.limit = 1 assert q == query