Browse Source

fix: Throw actual exception instead of ValidationError

- to make tests pass
version-14
Faris Ansari 3 years ago
parent
commit
eaec262b25
1 changed files with 8 additions and 2 deletions
  1. +8
    -2
      frappe/core/doctype/server_script/server_script_utils.py

+ 8
- 2
frappe/core/doctype/server_script/server_script_utils.py View File

@@ -43,11 +43,17 @@ def run_server_script_for_doc_event(doc, event):
for script_name in scripts: for script_name in scripts:
try: try:
frappe.get_doc('Server Script', script_name).execute_doc(doc) frappe.get_doc('Server Script', script_name).execute_doc(doc)
except Exception:
except Exception as e:
message = frappe._('Error executing Server Script {0}. Open Browser Console to see traceback.').format( message = frappe._('Error executing Server Script {0}. Open Browser Console to see traceback.').format(
frappe.utils.get_link_to_form('Server Script', script_name) frappe.utils.get_link_to_form('Server Script', script_name)
) )
frappe.throw(title=frappe._('Server Script Error'), msg=message)
exception = type(e)
if getattr(frappe, 'request', None):
# all exceptions throw 500 which is internal server error
# however server script error is a user error
# so we should throw 417 which is expectation failed
exception.http_status_code = 417
frappe.throw(title=frappe._('Server Script Error'), msg=message, exc=exception)


def get_server_script_map(): def get_server_script_map():
# fetch cached server script methods # fetch cached server script methods


Loading…
Cancel
Save