From 745080c56e7466791837bdf10c2d099981b72031 Mon Sep 17 00:00:00 2001 From: Akhil Narang Date: Sat, 6 Jan 2024 09:42:53 +0530 Subject: [PATCH] fix(test_recorder): get the correct request (#24143) Signed-off-by: Akhil Narang --- frappe/recorder.py | 13 ++++++++++--- frappe/tests/test_recorder.py | 8 +++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/frappe/recorder.py b/frappe/recorder.py index be0a1e4969..079251997f 100644 --- a/frappe/recorder.py +++ b/frappe/recorder.py @@ -8,6 +8,7 @@ import re import time from collections import Counter from collections.abc import Callable +from enum import Enum import sqlparse @@ -21,6 +22,12 @@ RECORDER_REQUEST_HASH = "recorder-requests" TRACEBACK_PATH_PATTERN = re.compile(".*/apps/") +class RecorderEvent(str, Enum): + HTTP_REQUEST = "HTTP Request" + BACKGROUND_JOB = "Background Job" + INVALID = "Invalid" + + def sql(*args, **kwargs): start_time = time.monotonic() result = frappe.db._sql(*args, **kwargs) @@ -154,16 +161,16 @@ class Recorder: self.method = frappe.request.method self.headers = dict(frappe.local.request.headers) self.form_dict = frappe.local.form_dict - self.event_type = "HTTP Request" + self.event_type = RecorderEvent.HTTP_REQUEST elif frappe.job: - self.event_type = "Background Job" + self.event_type = RecorderEvent.BACKGROUND_JOB self.path = frappe.job.method self.cmd = None self.method = None self.headers = None self.form_dict = None else: - self.event_type = None + self.event_type = RecorderEvent.INVALID self.path = None self.cmd = None self.method = None diff --git a/frappe/tests/test_recorder.py b/frappe/tests/test_recorder.py index 40e8bdc127..817b5319f7 100644 --- a/frappe/tests/test_recorder.py +++ b/frappe/tests/test_recorder.py @@ -122,7 +122,13 @@ class TestRecorder(FrappeTestCase): frappe.recorder.post_process() requests = frappe.recorder.get() - request = frappe.recorder.get(requests[0]["uuid"]) + request = frappe.recorder.get( + next( + request + for request in requests + if request["event_type"] == frappe.recorder.RecorderEvent.HTTP_REQUEST + )["uuid"] + ) for query, call in zip(queries, request["calls"]): self.assertEqual(call["exact_copies"], query[1])