Merge pull request #16829 from ankush/deferred_insert_fix

fix: handle dict data in deferred_insert
This commit is contained in:
Ankush Menat 2022-05-04 16:55:11 +05:30 committed by GitHub
commit 92fcc7c466
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 3 deletions

View file

@ -42,12 +42,10 @@ def save_to_db():
record_count += 1
insert_record(record, doctype)
frappe.db.commit()
def insert_record(record: Union[Dict, "Document"], doctype: str):
setattr(record, "doctype", doctype)
try:
record.update({"doctype": doctype})
frappe.get_doc(record).insert()
except Exception as e:
frappe.logger().error(f"Error while inserting deferred {doctype} record: {e}")

View file

@ -0,0 +1,12 @@
import frappe
from frappe.deferred_insert import deferred_insert, save_to_db
from frappe.tests.utils import FrappeTestCase
class TestDeferredInsert(FrappeTestCase):
def test_deferred_insert(self):
route_history = {"route": frappe.generate_hash(), "user": "Administrator"}
deferred_insert("Route History", [route_history])
save_to_db()
self.assertTrue(frappe.db.exists("Route History", route_history))