perf: slimmer and faster before_tests

This commit is contained in:
Ankush Menat 2022-03-25 22:59:20 +05:30 committed by Ankush Menat
parent c10e4977c3
commit 9daea6fa6c

View File

@ -1,7 +1,6 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt # License: GNU General Public License v3. See license.txt
import frappe import frappe
from frappe import _ from frappe import _
from frappe.utils import add_days, flt, get_datetime_str, nowdate from frappe.utils import add_days, flt, get_datetime_str, nowdate
@ -15,8 +14,9 @@ def before_tests():
frappe.clear_cache() frappe.clear_cache()
# complete setup if missing # complete setup if missing
from frappe.desk.page.setup_wizard.setup_wizard import setup_complete from frappe.desk.page.setup_wizard.setup_wizard import setup_complete
current_year = now_datetime().year
if not frappe.get_list("Company"): if not frappe.db.a_row_exists("Company"):
current_year = now_datetime().year
setup_complete({ setup_complete({
"currency" :"USD", "currency" :"USD",
"full_name" :"Test User", "full_name" :"Test User",
@ -34,13 +34,15 @@ def before_tests():
"chart_of_accounts" : "Standard", "chart_of_accounts" : "Standard",
"domains" : ["Manufacturing"], "domains" : ["Manufacturing"],
}) })
_enable_all_domains()
frappe.db.sql("delete from `tabLeave Allocation`") frappe.db.sql("delete from `tabLeave Allocation`")
frappe.db.sql("delete from `tabLeave Application`") frappe.db.sql("delete from `tabLeave Application`")
frappe.db.sql("delete from `tabSalary Slip`") frappe.db.sql("delete from `tabSalary Slip`")
frappe.db.sql("delete from `tabItem Price`") frappe.db.sql("delete from `tabItem Price`")
enable_all_roles_and_domains() _enable_all_roles_for_admin()
set_defaults_for_tests() set_defaults_for_tests()
frappe.db.commit() frappe.db.commit()
@ -119,22 +121,36 @@ def format_ces_api(data, param):
def enable_all_roles_and_domains(): def enable_all_roles_and_domains():
""" enable all roles and domain for testing """ """ enable all roles and domain for testing """
# add all roles to users _enable_all_domains()
domains = frappe.get_all("Domain") _enable_all_roles_for_admin()
def _enable_all_domains():
domains = frappe.get_all("Domain", pluck="name")
if not domains: if not domains:
return return
frappe.get_single('Domain Settings').set_active_domains(domains)
def _enable_all_roles_for_admin():
from frappe.desk.page.setup_wizard.setup_wizard import add_all_roles_to from frappe.desk.page.setup_wizard.setup_wizard import add_all_roles_to
frappe.get_single('Domain Settings').set_active_domains(\
[d.name for d in domains]) all_roles = set(frappe.db.get_values("Role", pluck="name"))
add_all_roles_to('Administrator') admin_roles = set(frappe.db.get_values("Has Role",
{"parent": "Administrator"}, fieldname="role", pluck="role"))
if all_roles.difference(admin_roles):
add_all_roles_to('Administrator')
def set_defaults_for_tests(): def set_defaults_for_tests():
selling_settings = frappe.get_single("Selling Settings") defaults = {
selling_settings.customer_group = get_root_of("Customer Group") "customer_group": get_root_of("Customer Group"),
selling_settings.territory = get_root_of("Territory") "territory": get_root_of("Territory"),
selling_settings.save() }
frappe.db.set_single_value("Selling Settings", defaults)
for key, value in defaults.items():
frappe.db.set_default(key, value)
frappe.db.set_single_value("Stock Settings", "auto_insert_price_list_rate_if_missing", 0) frappe.db.set_single_value("Stock Settings", "auto_insert_price_list_rate_if_missing", 0)