fix(test_recorder): explicitly stop recorder before calling post process by akhilnarang [frappe] PR#24143 [backport/v4]
Backport of !1310 (merged)
Conflicts detected for source commit: 7955de125da609405c0fd3fe6053959a4886bbbd
diff --cc frappe/commands/site.py
index cea02b4321,e049babfa9..0000000000
--- a/frappe/commands/site.py
+++ b/frappe/commands/site.py
@@@ -572,7 -572,7 +572,11 @@@ def describe_database_table(context, do
def _extract_table_stats(doctype: str, columns: list[str]) -> dict:
++<<<<<<< HEAD
+ from frappe.utils import cstr, get_table_name
++=======
+ from frappe.utils import cint, cstr, get_table_name
++>>>>>>> 7955de125da609405c0fd3fe6053959a4886bbbd
def sql_bool(val):
return cstr(val).lower() in ("yes", "1", "true")
@@@ -612,7 -612,13 +616,17 @@@
if idx["Seq_in_index"] == 1:
update_cardinality(idx["Column_name"], idx["Cardinality"])
++<<<<<<< HEAD
+ total_rows = frappe.db.count(doctype)
++=======
+ total_rows = cint(
+ frappe.db.sql(
+ f"""select table_rows
+ from information_schema.tables
+ where table_name = 'tab{doctype}'"""
+ )[0][0]
+ )
++>>>>>>> 7955de125da609405c0fd3fe6053959a4886bbbd
# fetch accurate cardinality for columns by query. WARN: This can take a lot of time.
for column in columns:
diff --cc frappe/public/js/frappe/form/grid_row.js
index 8b0a93c12d,bd0806284e..0000000000
--- a/frappe/public/js/frappe/form/grid_row.js
+++ b/frappe/public/js/frappe/form/grid_row.js
@@@ -1130,8 -1130,8 +1130,13 @@@ export default class GridRow
let ignore_fieldtypes = ["Text", "Small Text", "Code", "Text Editor", "HTML Editor"];
if (field.$input) {
field.$input.on("keydown", function (e) {
++<<<<<<< HEAD
+ var { TAB, UP: UP_ARROW, DOWN: DOWN_ARROW } = frappe.ui.keyCode;
+ if (![TAB, UP_ARROW, DOWN_ARROW].includes(e.which)) {
++=======
+ var { ESCAPE, TAB, UP: UP_ARROW, DOWN: DOWN_ARROW } = frappe.ui.keyCode;
+ if (![TAB, UP_ARROW, DOWN_ARROW, ESCAPE].includes(e.which)) {
++>>>>>>> 7955de125da609405c0fd3fe6053959a4886bbbd
return;
}
diff --cc frappe/recorder.py
index 0f09773642,366ddad0ba..0000000000
--- a/frappe/recorder.py
+++ b/frappe/recorder.py
@@@ -155,16 -162,16 +162,26 @@@ class Recorder
self.method = frappe.request.method
self.headers = dict(frappe.local.request.headers)
self.form_dict = frappe.local.form_dict
++<<<<<<< HEAD
+ self.event_type = "HTTP Request"
+ elif frappe.job:
+ self.event_type = "Background Job"
++=======
+ self.event_type = RecorderEvent.HTTP_REQUEST
+ elif frappe.job:
+ self.event_type = RecorderEvent.BACKGROUND_JOB
++>>>>>>> 7955de125da609405c0fd3fe6053959a4886bbbd
self.path = frappe.job.method
self.cmd = None
self.method = None
self.headers = None
self.form_dict = None
else:
++<<<<<<< HEAD
+ self.event_type = None
++=======
+ self.event_type = RecorderEvent.INVALID
++>>>>>>> 7955de125da609405c0fd3fe6053959a4886bbbd
self.path = None
self.cmd = None
self.method = None
diff --cc frappe/utils/data.py
index e3d892aa88,4df1a6cc51..0000000000
--- a/frappe/utils/data.py
+++ b/frappe/utils/data.py
@@@ -638,14 -638,14 +638,26 @@@ def get_quarter_ending
return date.strftime(DATE_FORMAT) if as_str else date
++<<<<<<< HEAD
++=======
@typing.overload
def get_year_ending(
dt: DateTimeLikeObject | None = None, as_str: Literal[False] = False
) -> datetime.date:
...
++>>>>>>> 7955de125da609405c0fd3fe6053959a4886bbbd
++@typing.overload
++def get_year_ending(
++ dt: DateTimeLikeObject | None = None, as_str: Literal[False] = False
++) -> datetime.date:
++ ...
++
++<<<<<<< HEAD
++=======
++>>>>>>> 7955de125da609405c0fd3fe6053959a4886bbbd
@typing.overload
def get_year_ending(dt: DateTimeLikeObject | None = None, as_str: Literal[True] = False) -> str:
...
@@@ -662,12 -662,12 +674,21 @@@ def get_year_ending(date: DateTimeLikeO
year_ending = add_to_date(next_year_start, days=-1)
return year_ending.strftime(DATE_FORMAT) if as_str else year_ending
++<<<<<<< HEAD
+
+def get_time(
+ time_str: str | datetime.datetime | datetime.time | datetime.timedelta,
+) -> datetime.time:
+ """Return a `datetime.time` object for the given `time_str`.
+
++=======
+
+ def get_time(
+ time_str: str | datetime.datetime | datetime.time | datetime.timedelta,
+ ) -> datetime.time:
+ """Return a `datetime.time` object for the given `time_str`.
+
++>>>>>>> 7955de125da609405c0fd3fe6053959a4886bbbd
If the given argument is already a `datetime.time` object, it is returned as is."""
if isinstance(time_str, datetime.datetime):