fix: missing order by clause and tests
This commit is contained in:
parent
de932b464f
commit
8ffd363ccf
2 changed files with 37 additions and 5 deletions
|
|
@ -41,10 +41,20 @@ class Recorder(Document):
|
|||
start = cint(args.get("start")) or 0
|
||||
page_length = cint(args.get("page_length")) or 20
|
||||
requests = Recorder.get_filtered_requests(args)[start : start + page_length]
|
||||
if args.get("order_by"):
|
||||
sort_key, sort_order = args.get("order_by").split(".")[1].split(" ")
|
||||
|
||||
if order_by_statment := args.get("order_by"):
|
||||
if "." in order_by_statment:
|
||||
order_by_statment = order_by_statment.split(".")[1]
|
||||
|
||||
if " " in order_by_statment:
|
||||
sort_key, sort_order = order_by_statment.split(" ")
|
||||
else:
|
||||
sort_key = order_by_statment
|
||||
sort_order = "desc"
|
||||
|
||||
sort_key = sort_key.replace("`", "")
|
||||
return sorted(requests, key=lambda r: r[sort_key], reverse=bool(sort_order == "desc"))
|
||||
return sorted(requests, key=lambda r: r.get(sort_key) or 0, reverse=bool(sort_order == "desc"))
|
||||
|
||||
return sorted(requests, key=lambda r: r.duration, reverse=1)
|
||||
|
||||
@staticmethod
|
||||
|
|
|
|||
|
|
@ -1,9 +1,31 @@
|
|||
# Copyright (c) 2023, Frappe Technologies and Contributors
|
||||
# See license.txt
|
||||
|
||||
# import frappe
|
||||
import frappe
|
||||
import frappe.recorder
|
||||
from frappe.tests.utils import FrappeTestCase
|
||||
from frappe.utils import set_request
|
||||
|
||||
|
||||
class TestRecorder(FrappeTestCase):
|
||||
pass
|
||||
def setUp(self):
|
||||
self.start_recoder()
|
||||
|
||||
def start_recoder(self):
|
||||
frappe.recorder.stop()
|
||||
frappe.recorder.delete()
|
||||
set_request()
|
||||
frappe.recorder.start()
|
||||
frappe.recorder.record()
|
||||
|
||||
def stop_recorder(self):
|
||||
frappe.recorder.dump()
|
||||
|
||||
def test_recorder_list(self):
|
||||
frappe.get_all("User") # trigger one query
|
||||
self.stop_recorder()
|
||||
|
||||
requests = frappe.get_all("Recorder")
|
||||
self.assertGreaterEqual(len(requests), 1)
|
||||
request = frappe.get_doc("Recorder", requests[0].name)
|
||||
self.assertGreaterEqual(len(request.sql_queries), 1)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue