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]) |