From c4ca58fedfe6ec7d84768d4dde673f57dcc49bcf Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Tue, 22 Mar 2022 21:14:22 +0530 Subject: [PATCH] refactor: query stripping --- frappe/database/database.py | 4 ++-- frappe/tests/test_db.py | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/frappe/database/database.py b/frappe/database/database.py index 957e096956..511d993aa5 100644 --- a/frappe/database/database.py +++ b/frappe/database/database.py @@ -119,8 +119,8 @@ class Database(object): if not run: return query - # remove \n \t from start and end of query - query = re.sub(r'^\s*|\s*$', '', query) + # remove whitespace / indentation from start and end of query + query = query.strip() if re.search(r'ifnull\(', query, flags=re.IGNORECASE): # replaces ifnull in query with coalesce diff --git a/frappe/tests/test_db.py b/frappe/tests/test_db.py index 10c601db00..33a5006161 100644 --- a/frappe/tests/test_db.py +++ b/frappe/tests/test_db.py @@ -312,6 +312,21 @@ class TestDB(unittest.TestCase): frappe.db.MAX_WRITES_PER_TRANSACTION = Database.MAX_WRITES_PER_TRANSACTION + def test_transaction_write_counting(self): + note = frappe.get_doc(doctype="Note", title="transaction counting").insert() + + writes = frappe.db.transaction_writes + frappe.db.set_value("Note", note.name, "content", "abc") + self.assertEqual(1, frappe.db.transaction_writes - writes) + writes = frappe.db.transaction_writes + + frappe.db.sql(""" + update `tabNote` + set content = 'abc' + where name = %s + """, note.name) + self.assertEqual(1, frappe.db.transaction_writes - writes) + def test_pk_collision_ignoring(self): # note has `name` generated from title for _ in range(3):