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, False) return { "cols": flatten_table(bound_query.col_fields, data["cols"]), "rows": flatten_table(bound_query.row_fields, data["rows"]), "body": [ flatten_table(bound_query.data_fields, row) for row in data["body"] ], }
def helper(fields, query=None): query = query or {} admin.site.register(JsonModel, JsonAdmin) try: orm_models = get_models(req) query = Query.from_request("json.JsonModel", fields, query) bound_query = BoundQuery.bind(query, orm_models) data = get_results(req, bound_query, orm_models, False) finally: admin.site.unregister(JsonModel) return data["rows"]
def helper(*fields, **filters): orm_models = get_models(admin_ddb_request) query = Query.from_request("array.ArrayModel", ",".join(fields), list(filters.items())) bound_query = BoundQuery.bind(query, orm_models) data = get_results(admin_ddb_request, bound_query, orm_models, False) for f in bound_query.filters: if f.err_message: print( # pragma: no cover "filter error:", f.path_str, f.lookup, f.value, "->", f.err_message) return data["rows"]
def helper(fields, query=None): query = query or [] orm_models = get_models(req) query = Query.from_request("array.ArrayModel", fields, query) bound_query = BoundQuery.bind(query, orm_models) data = get_results(req, bound_query, orm_models, False) for f in bound_query.filters: if f.err_message: print("filter error:", f.path_str, f.lookup, f.value, "->", f.err_message) return data["rows"]
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_field_pivoted(self): q = Query.from_request("app.model", "&fn", QueryDict("")) assert q == Query("app.model", [QueryField("fn", True)], [])
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_field_no_name(self): q = Query.from_request("app.model", "+2", QueryDict("")) assert q == Query("app.model", [QueryField("", False, ASC, 2)], [])
def test_from_request_filter_no_name(self): q = Query.from_request("app.model", "", QueryDict("=123")) assert q == Query("app.model", [], [])
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_from_request_filter_no_lookup(self): q = Query.from_request("app.model", "", QueryDict("joe=tom")) assert q == Query("app.model", [], [])
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, False) return flatten_table(bound_query.fields, data["rows"])
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_with_low_limit(self, query): q = Query.from_request("app.model", "fa+1,fd-0,fn", [("limit", "0"), ("bob__equals", "fred")]) assert q.arguments["limit"] == 1
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_from_request(self, query): q = Query.from_request( "app.model", "fa+1,fd-0,fn", QueryDict("bob__equals=fred") ) assert q == query
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_filter_no_name(self): q = Query.from_request("app.model", "", [("", "123")]) assert q == Query("app.model", [], [], {"": "123"})
def test_from_request_filter_no_lookup(self): q = Query.from_request("app.model", "", [("joe", "tom")]) assert q == Query("app.model", [], [], {"joe": "tom"})
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, False) return flatten_table(bound_query.fields, data["rows"])
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_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