[hotfix] throw DoesNotExistError if doctype is not available on Delete api (#4013)
* [hotfix] throw DoesNotExistError if doctype is not available on Delete api * [fixes] aded tests cases and codecy, travis fixes
This commit is contained in:
parent
9d84f387e0
commit
6fa9967a04
5 changed files with 17 additions and 6 deletions
|
|
@ -642,7 +642,7 @@ def get_meta_module(doctype):
|
|||
return frappe.modules.load_doctype_module(doctype)
|
||||
|
||||
def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reload=False,
|
||||
ignore_permissions=False, flags=None):
|
||||
ignore_permissions=False, flags=None, ignore_on_trash=False, ignore_missing=True):
|
||||
"""Delete a document. Calls `frappe.model.delete_doc.delete_doc`.
|
||||
|
||||
:param doctype: DocType of document to be delete.
|
||||
|
|
@ -653,7 +653,7 @@ def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reloa
|
|||
:param ignore_permissions: Ignore user permissions."""
|
||||
import frappe.model.delete_doc
|
||||
frappe.model.delete_doc.delete_doc(doctype, name, force, ignore_doctypes, for_reload,
|
||||
ignore_permissions, flags)
|
||||
ignore_permissions, flags, ignore_on_trash, ignore_missing)
|
||||
|
||||
def delete_doc_if_exists(doctype, name, force=0):
|
||||
"""Delete document if exists."""
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ def handle():
|
|||
|
||||
if frappe.local.request.method=="DELETE":
|
||||
# Not checking permissions here because it's checked in delete_doc
|
||||
frappe.delete_doc(doctype, name)
|
||||
frappe.delete_doc(doctype, name, ignore_missing=False)
|
||||
frappe.local.response.http_status_code = 202
|
||||
frappe.local.response.message = "ok"
|
||||
frappe.db.commit()
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ def delete(doctype, name):
|
|||
|
||||
:param doctype: DocType of the document to be deleted
|
||||
:param name: name of the document to be deleted'''
|
||||
frappe.delete_doc(doctype, name)
|
||||
frappe.delete_doc(doctype, name, ignore_missing=False)
|
||||
|
||||
@frappe.whitelist()
|
||||
def set_default(key, value, parent=None):
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ from frappe.utils.global_search import delete_for_document
|
|||
from six import string_types
|
||||
|
||||
def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reload=False,
|
||||
ignore_permissions=False, flags=None, ignore_on_trash=False):
|
||||
ignore_permissions=False, flags=None, ignore_on_trash=False, ignore_missing=True):
|
||||
"""
|
||||
Deletes a doc(dt, dn) and validates if it is not submitted and not linked in a live record
|
||||
"""
|
||||
|
|
@ -34,7 +34,10 @@ def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reloa
|
|||
|
||||
# already deleted..?
|
||||
if not frappe.db.exists(doctype, name):
|
||||
return
|
||||
if not ignore_missing:
|
||||
raise frappe.DoesNotExistError
|
||||
else:
|
||||
return False
|
||||
|
||||
# delete passwords
|
||||
delete_all_passwords_for(doctype, name)
|
||||
|
|
|
|||
|
|
@ -13,3 +13,11 @@ class TestClient(unittest.TestCase):
|
|||
frappe.set_value('ToDo', todo.name, {'description': 'test 2'})
|
||||
self.assertEquals(frappe.get_value('ToDo', todo.name, 'description'), 'test 2')
|
||||
|
||||
def test_delete(self):
|
||||
from frappe.client import delete
|
||||
|
||||
todo = frappe.get_doc(dict(doctype='ToDo', description='description')).insert()
|
||||
delete("ToDo", todo.name)
|
||||
|
||||
self.assertFalse(frappe.db.exists("ToDo", todo.name))
|
||||
self.assertRaises(frappe.DoesNotExistError, delete, "ToDo", todo.name)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue