test: import fixturesversion-14
@@ -0,0 +1,168 @@ | |||
{ | |||
"docstatus": 0, | |||
"doctype": "DocType", | |||
"name": "new-doctype-2", | |||
"__islocal": 1, | |||
"__unsaved": 1, | |||
"owner": "Administrator", | |||
"is_submittable": 0, | |||
"istable": 0, | |||
"issingle": 0, | |||
"is_tree": 0, | |||
"editable_grid": 1, | |||
"quick_entry": 1, | |||
"track_changes": 1, | |||
"track_seen": 0, | |||
"track_views": 0, | |||
"custom": 1, | |||
"beta": 0, | |||
"is_virtual": 0, | |||
"naming_rule": "", | |||
"name_case": "", | |||
"allow_rename": 1, | |||
"hide_toolbar": 0, | |||
"allow_copy": 0, | |||
"allow_import": 0, | |||
"allow_events_in_timeline": 0, | |||
"allow_auto_repeat": 0, | |||
"sort_field": "modified", | |||
"sort_order": "DESC", | |||
"document_type": "", | |||
"show_preview_popup": 0, | |||
"show_name_in_global_search": 0, | |||
"email_append_to": 0, | |||
"read_only": 0, | |||
"in_create": 0, | |||
"has_web_view": 0, | |||
"allow_guest_to_view": 0, | |||
"index_web_pages_for_search": 1, | |||
"engine": "InnoDB", | |||
"permissions": [ | |||
{ | |||
"docstatus": 0, | |||
"doctype": "DocPerm", | |||
"name": "new-docperm-2", | |||
"__islocal": 1, | |||
"__unsaved": 1, | |||
"owner": "Administrator", | |||
"if_owner": 0, | |||
"permlevel": 0, | |||
"select": 0, | |||
"read": 1, | |||
"write": 1, | |||
"create": 1, | |||
"delete": 1, | |||
"submit": 0, | |||
"cancel": 0, | |||
"amend": 0, | |||
"report": 1, | |||
"export": 1, | |||
"import": 0, | |||
"set_user_permissions": 0, | |||
"share": 1, | |||
"print": 1, | |||
"email": 1, | |||
"parent": "new-doctype-2", | |||
"parentfield": "permissions", | |||
"parenttype": "DocType", | |||
"idx": 1, | |||
"role": "System Manager" | |||
} | |||
], | |||
"__newname": "temp_doctype", | |||
"module": "Custom", | |||
"fields": [ | |||
{ | |||
"docstatus": 0, | |||
"doctype": "DocField", | |||
"name": "new-docfield-1", | |||
"__islocal": 1, | |||
"__unsaved": 1, | |||
"owner": "Administrator", | |||
"fieldtype": "Data", | |||
"precision": "", | |||
"non_negative": 0, | |||
"hide_days": 0, | |||
"hide_seconds": 0, | |||
"reqd": 1, | |||
"search_index": 0, | |||
"fetch_if_empty": 0, | |||
"hidden": 0, | |||
"bold": 0, | |||
"allow_in_quick_entry": 0, | |||
"translatable": 0, | |||
"print_hide": 0, | |||
"print_hide_if_no_value": 0, | |||
"report_hide": 0, | |||
"collapsible": 0, | |||
"hide_border": 0, | |||
"in_list_view": 0, | |||
"in_standard_filter": 0, | |||
"in_preview": 0, | |||
"in_filter": 0, | |||
"in_global_search": 0, | |||
"read_only": 0, | |||
"allow_on_submit": 0, | |||
"ignore_user_permissions": 0, | |||
"allow_bulk_edit": 0, | |||
"permlevel": 0, | |||
"ignore_xss_filter": 0, | |||
"unique": 0, | |||
"no_copy": 0, | |||
"set_only_once": 0, | |||
"remember_last_selected_value": 0, | |||
"parent": "new-doctype-2", | |||
"parentfield": "fields", | |||
"parenttype": "DocType", | |||
"idx": 1, | |||
"__unedited": false, | |||
"label": "member_name" | |||
}, | |||
{ | |||
"docstatus": 0, | |||
"doctype": "DocField", | |||
"name": "new-docfield-2", | |||
"__islocal": 1, | |||
"__unsaved": 1, | |||
"owner": "Administrator", | |||
"fieldtype": "Data", | |||
"precision": "", | |||
"non_negative": 0, | |||
"hide_days": 0, | |||
"hide_seconds": 0, | |||
"reqd": 0, | |||
"search_index": 0, | |||
"fetch_if_empty": 0, | |||
"hidden": 0, | |||
"bold": 0, | |||
"allow_in_quick_entry": 0, | |||
"translatable": 0, | |||
"print_hide": 0, | |||
"print_hide_if_no_value": 0, | |||
"report_hide": 0, | |||
"collapsible": 0, | |||
"hide_border": 0, | |||
"in_list_view": 0, | |||
"in_standard_filter": 0, | |||
"in_preview": 0, | |||
"in_filter": 0, | |||
"in_global_search": 0, | |||
"read_only": 0, | |||
"allow_on_submit": 0, | |||
"ignore_user_permissions": 0, | |||
"allow_bulk_edit": 0, | |||
"permlevel": 0, | |||
"ignore_xss_filter": 0, | |||
"unique": 0, | |||
"no_copy": 0, | |||
"set_only_once": 0, | |||
"remember_last_selected_value": 0, | |||
"parent": "new-doctype-2", | |||
"parentfield": "fields", | |||
"parenttype": "DocType", | |||
"idx": 2, | |||
"__unedited": false, | |||
"label": "email" | |||
} | |||
] | |||
} |
@@ -0,0 +1,168 @@ | |||
{ | |||
"docstatus": 0, | |||
"doctype": "DocType", | |||
"name": "new-doctype-1", | |||
"__islocal": 1, | |||
"__unsaved": 1, | |||
"owner": "Administrator", | |||
"is_submittable": 0, | |||
"istable": 0, | |||
"issingle": 1, | |||
"is_tree": 0, | |||
"editable_grid": 1, | |||
"quick_entry": 0, | |||
"track_changes": 1, | |||
"track_seen": 0, | |||
"track_views": 0, | |||
"custom": 1, | |||
"beta": 0, | |||
"is_virtual": 0, | |||
"naming_rule": "", | |||
"name_case": "", | |||
"allow_rename": 1, | |||
"hide_toolbar": 0, | |||
"allow_copy": 0, | |||
"allow_import": 0, | |||
"allow_events_in_timeline": 0, | |||
"allow_auto_repeat": 0, | |||
"sort_field": "modified", | |||
"sort_order": "DESC", | |||
"document_type": "", | |||
"show_preview_popup": 0, | |||
"show_name_in_global_search": 0, | |||
"email_append_to": 0, | |||
"read_only": 0, | |||
"in_create": 0, | |||
"has_web_view": 0, | |||
"allow_guest_to_view": 0, | |||
"index_web_pages_for_search": 1, | |||
"engine": "InnoDB", | |||
"permissions": [ | |||
{ | |||
"docstatus": 0, | |||
"doctype": "DocPerm", | |||
"name": "new-docperm-1", | |||
"__islocal": 1, | |||
"__unsaved": 1, | |||
"owner": "Administrator", | |||
"if_owner": 0, | |||
"permlevel": 0, | |||
"select": 0, | |||
"read": 1, | |||
"write": 1, | |||
"create": 1, | |||
"delete": 1, | |||
"submit": 0, | |||
"cancel": 0, | |||
"amend": 0, | |||
"report": 1, | |||
"export": 1, | |||
"import": 0, | |||
"set_user_permissions": 0, | |||
"share": 1, | |||
"print": 1, | |||
"email": 1, | |||
"parent": "new-doctype-1", | |||
"parentfield": "permissions", | |||
"parenttype": "DocType", | |||
"idx": 1, | |||
"role": "System Manager" | |||
} | |||
], | |||
"__newname": "temp_singles", | |||
"module": "Custom", | |||
"fields": [ | |||
{ | |||
"docstatus": 0, | |||
"doctype": "DocField", | |||
"name": "new-docfield-1", | |||
"__islocal": 1, | |||
"__unsaved": 1, | |||
"owner": "Administrator", | |||
"fieldtype": "Data", | |||
"precision": "", | |||
"non_negative": 0, | |||
"hide_days": 0, | |||
"hide_seconds": 0, | |||
"reqd": 0, | |||
"search_index": 0, | |||
"fetch_if_empty": 0, | |||
"hidden": 0, | |||
"bold": 0, | |||
"allow_in_quick_entry": 0, | |||
"translatable": 0, | |||
"print_hide": 0, | |||
"print_hide_if_no_value": 0, | |||
"report_hide": 0, | |||
"collapsible": 0, | |||
"hide_border": 0, | |||
"in_list_view": 0, | |||
"in_standard_filter": 0, | |||
"in_preview": 0, | |||
"in_filter": 0, | |||
"in_global_search": 0, | |||
"read_only": 0, | |||
"allow_on_submit": 0, | |||
"ignore_user_permissions": 0, | |||
"allow_bulk_edit": 0, | |||
"permlevel": 0, | |||
"ignore_xss_filter": 0, | |||
"unique": 0, | |||
"no_copy": 0, | |||
"set_only_once": 0, | |||
"remember_last_selected_value": 0, | |||
"parent": "new-doctype-1", | |||
"parentfield": "fields", | |||
"parenttype": "DocType", | |||
"idx": 1, | |||
"__unedited": false, | |||
"label": "member_name" | |||
}, | |||
{ | |||
"docstatus": 0, | |||
"doctype": "DocField", | |||
"name": "new-docfield-2", | |||
"__islocal": 1, | |||
"__unsaved": 1, | |||
"owner": "Administrator", | |||
"fieldtype": "Data", | |||
"precision": "", | |||
"non_negative": 0, | |||
"hide_days": 0, | |||
"hide_seconds": 0, | |||
"reqd": 0, | |||
"search_index": 0, | |||
"fetch_if_empty": 0, | |||
"hidden": 0, | |||
"bold": 0, | |||
"allow_in_quick_entry": 0, | |||
"translatable": 0, | |||
"print_hide": 0, | |||
"print_hide_if_no_value": 0, | |||
"report_hide": 0, | |||
"collapsible": 0, | |||
"hide_border": 0, | |||
"in_list_view": 0, | |||
"in_standard_filter": 0, | |||
"in_preview": 0, | |||
"in_filter": 0, | |||
"in_global_search": 0, | |||
"read_only": 0, | |||
"allow_on_submit": 0, | |||
"ignore_user_permissions": 0, | |||
"allow_bulk_edit": 0, | |||
"permlevel": 0, | |||
"ignore_xss_filter": 0, | |||
"unique": 0, | |||
"no_copy": 0, | |||
"set_only_once": 0, | |||
"remember_last_selected_value": 0, | |||
"parent": "new-doctype-1", | |||
"parentfield": "fields", | |||
"parenttype": "DocType", | |||
"idx": 2, | |||
"__unedited": false, | |||
"label": "email" | |||
} | |||
] | |||
} |
@@ -0,0 +1,81 @@ | |||
import os | |||
import unittest | |||
from typing import List | |||
import frappe | |||
from frappe.core.doctype.data_import.data_import import export_json, import_doc | |||
from frappe.desk.form.save import savedocs | |||
from frappe.model.delete_doc import delete_doc | |||
class TestFixtureImport(unittest.TestCase): | |||
def create_new_doctype(self, DocType: str) -> None: | |||
file = frappe.get_app_path("frappe", "custom", "fixtures", f"{DocType}.json") | |||
file = open(file, "r") | |||
doc = file.read() | |||
file.close() | |||
savedocs(doc, "Save") | |||
def insert_dummy_data_and_export(self, DocType: str, dummy_name_list: List[str]) -> str: | |||
for name in dummy_name_list: | |||
doc = frappe.get_doc({"doctype": DocType, "member_name": name}) | |||
doc.insert() | |||
path_to_exported_fixtures = os.path.join(os.getcwd(), f"{DocType}_data.json") | |||
export_json(DocType, path_to_exported_fixtures) | |||
return path_to_exported_fixtures | |||
def test_fixtures_import(self): | |||
self.assertFalse(frappe.db.exists("DocType", "temp_doctype")) | |||
self.create_new_doctype("temp_doctype") | |||
dummy_name_list = ["jhon", "jane"] | |||
path_to_exported_fixtures = self.insert_dummy_data_and_export("temp_doctype", dummy_name_list) | |||
frappe.db.truncate("temp_doctype") | |||
import_doc(path_to_exported_fixtures) | |||
delete_doc("DocType", "temp_doctype", delete_permanently=True) | |||
os.remove(path_to_exported_fixtures) | |||
self.assertEqual(frappe.db.count("temp_doctype"), len(dummy_name_list)) | |||
data = frappe.get_all("temp_doctype", "member_name") | |||
frappe.db.truncate("temp_doctype") | |||
imported_data = set() | |||
for item in data: | |||
imported_data.add(item["member_name"]) | |||
self.assertEqual(set(dummy_name_list), imported_data) | |||
def test_singles_fixtures_import(self): | |||
self.assertFalse(frappe.db.exists("DocType", "temp_singles")) | |||
self.create_new_doctype("temp_singles") | |||
dummy_name_list = ["Phoebe"] | |||
path_to_exported_fixtures = self.insert_dummy_data_and_export("temp_singles", dummy_name_list) | |||
singles_doctype = frappe.qb.DocType("Singles") | |||
truncate_query = ( | |||
frappe.qb.from_(singles_doctype) | |||
.delete() | |||
.where(singles_doctype.doctype == "temp_singles") | |||
) | |||
truncate_query.run() | |||
import_doc(path_to_exported_fixtures) | |||
delete_doc("DocType", "temp_singles", delete_permanently=True) | |||
os.remove(path_to_exported_fixtures) | |||
data = frappe.db.get_single_value("temp_singles", "member_name") | |||
truncate_query.run() | |||
self.assertEqual(data, dummy_name_list[0]) |