Browse Source

Merge pull request #15328 from saxenabhishek/aks-test-fixtures

test: import fixtures
version-14
mergify[bot] 3 years ago
committed by GitHub
parent
commit
ba9d302357
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 417 additions and 0 deletions
  1. +168
    -0
      frappe/custom/fixtures/temp_doctype.json
  2. +168
    -0
      frappe/custom/fixtures/temp_singles.json
  3. +81
    -0
      frappe/tests/test_fixture_import.py

+ 168
- 0
frappe/custom/fixtures/temp_doctype.json View File

@@ -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"
}
]
}

+ 168
- 0
frappe/custom/fixtures/temp_singles.json View File

@@ -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"
}
]
}

+ 81
- 0
frappe/tests/test_fixture_import.py View File

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

Loading…
Cancel
Save