mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-29 18:04:46 +00:00
refactor(test): bare bones presets for company
This commit is contained in:
@@ -57,8 +57,20 @@ def clear_demo_data():
|
|||||||
|
|
||||||
|
|
||||||
def create_demo_company():
|
def create_demo_company():
|
||||||
company = frappe.db.get_all("Company")[0].name
|
if frappe.flags.in_test:
|
||||||
company_doc = frappe.get_doc("Company", company)
|
hash = frappe.generate_hash(length=3)
|
||||||
|
company_doc = frappe._dict(
|
||||||
|
{
|
||||||
|
"company_name": "Test Company" + " " + hash,
|
||||||
|
"abbr": "TC" + hash,
|
||||||
|
"default_currency": "INR",
|
||||||
|
"country": "India",
|
||||||
|
"chart_of_accounts": "Standard",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
company = frappe.db.get_all("Company")[0].name
|
||||||
|
company_doc = frappe.get_doc("Company", company).as_dict()
|
||||||
|
|
||||||
# Make a dummy company
|
# Make a dummy company
|
||||||
new_company = frappe.new_doc("Company")
|
new_company = frappe.new_doc("Company")
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ class TestCompany(ERPNextTestSuite):
|
|||||||
company.default_currency = "INR"
|
company.default_currency = "INR"
|
||||||
company.create_chart_of_accounts_based_on = "Existing Company"
|
company.create_chart_of_accounts_based_on = "Existing Company"
|
||||||
company.existing_company = "_Test Company"
|
company.existing_company = "_Test Company"
|
||||||
|
company.country = "India"
|
||||||
company.save()
|
company.save()
|
||||||
|
|
||||||
expected_results = {
|
expected_results = {
|
||||||
@@ -67,6 +68,7 @@ class TestCompany(ERPNextTestSuite):
|
|||||||
company.default_currency = "USD"
|
company.default_currency = "USD"
|
||||||
company.create_chart_of_accounts_based_on = "Standard Template"
|
company.create_chart_of_accounts_based_on = "Standard Template"
|
||||||
company.chart_of_accounts = template
|
company.chart_of_accounts = template
|
||||||
|
company.country = country
|
||||||
company.save()
|
company.save()
|
||||||
|
|
||||||
account_types = [
|
account_types = [
|
||||||
@@ -108,11 +110,11 @@ class TestCompany(ERPNextTestSuite):
|
|||||||
max_rgt = frappe.db.sql("select max(rgt) from `tabCompany`")[0][0]
|
max_rgt = frappe.db.sql("select max(rgt) from `tabCompany`")[0][0]
|
||||||
|
|
||||||
if not records:
|
if not records:
|
||||||
records = self.globalTestRecords["Company"][2:]
|
records = self.companies[2:]
|
||||||
|
|
||||||
for company in records:
|
for company in records:
|
||||||
lft, rgt, parent_company = frappe.db.get_value(
|
lft, rgt, parent_company = frappe.db.get_value(
|
||||||
"Company", company["company_name"], ["lft", "rgt", "parent_company"]
|
"Company", company.get("company_name"), ["lft", "rgt", "parent_company"]
|
||||||
)
|
)
|
||||||
|
|
||||||
if parent_company:
|
if parent_company:
|
||||||
|
|||||||
@@ -5,8 +5,10 @@ import unittest
|
|||||||
from typing import Any, NewType
|
from typing import Any, NewType
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
|
from frappe import _
|
||||||
from frappe.core.doctype.report.report import get_report_module_dotted_path
|
from frappe.core.doctype.report.report import get_report_module_dotted_path
|
||||||
from frappe.tests import IntegrationTestCase
|
from frappe.tests import IntegrationTestCase
|
||||||
|
from frappe.utils import now_datetime
|
||||||
|
|
||||||
ReportFilters = dict[str, Any]
|
ReportFilters = dict[str, Any]
|
||||||
ReportName = NewType("ReportName", str)
|
ReportName = NewType("ReportName", str)
|
||||||
@@ -126,9 +128,125 @@ class ERPNextTestSuite(unittest.TestCase):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def make_persistant_master_data(cls):
|
def make_persistant_master_data(cls):
|
||||||
|
# presets and default are mandatory for company
|
||||||
|
cls.make_warehouse_type()
|
||||||
|
cls.make_uom()
|
||||||
|
cls.make_address_template()
|
||||||
|
cls.make_fiscal_year()
|
||||||
cls.make_company()
|
cls.make_company()
|
||||||
|
cls.update_stock_settings()
|
||||||
|
|
||||||
frappe.db.commit()
|
frappe.db.commit()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def update_stock_settings(cls):
|
||||||
|
stock_settings = frappe.get_doc("Stock Settings")
|
||||||
|
stock_settings.item_naming_by = "Item Code"
|
||||||
|
stock_settings.valuation_method = "FIFO"
|
||||||
|
stock_settings.default_warehouse = frappe.db.get_value("Warehouse", {"warehouse_name": _("Stores")})
|
||||||
|
stock_settings.stock_uom = "Nos"
|
||||||
|
stock_settings.auto_indent = 1
|
||||||
|
stock_settings.auto_insert_price_list_rate_if_missing = 1
|
||||||
|
stock_settings.update_price_list_based_on = "Rate"
|
||||||
|
stock_settings.set_qty_in_transactions_based_on_serial_no_input = 1
|
||||||
|
stock_settings.enable_serial_and_batch_no_for_item = 1
|
||||||
|
stock_settings.save()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def make_price_list(cls):
|
||||||
|
records = [
|
||||||
|
{
|
||||||
|
"doctype": "Price List",
|
||||||
|
"price_list_name": _("Standard Buying"),
|
||||||
|
"enabled": 1,
|
||||||
|
"buying": 1,
|
||||||
|
"selling": 0,
|
||||||
|
"currency": "INR",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"doctype": "Price List",
|
||||||
|
"price_list_name": _("Standard Selling"),
|
||||||
|
"enabled": 1,
|
||||||
|
"buying": 0,
|
||||||
|
"selling": 1,
|
||||||
|
"currency": "INR",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
cls.price_list = []
|
||||||
|
for x in records:
|
||||||
|
if not frappe.db.exists(
|
||||||
|
"Price List",
|
||||||
|
{
|
||||||
|
"price_list_name": x.get("price_list_name"),
|
||||||
|
"enabled": x.get("enabled"),
|
||||||
|
"selling": x.get("selling"),
|
||||||
|
"buying": x.get("buying"),
|
||||||
|
"currency": x.get("currency"),
|
||||||
|
},
|
||||||
|
):
|
||||||
|
cls.price_list.append(frappe.get_doc(x).insert())
|
||||||
|
else:
|
||||||
|
cls.price_list.append(
|
||||||
|
frappe.get_doc(
|
||||||
|
"Price List",
|
||||||
|
{
|
||||||
|
"price_list_name": x.get("price_list_name"),
|
||||||
|
"enabled": x.get("enabled"),
|
||||||
|
"selling": x.get("selling"),
|
||||||
|
"buying": x.get("buying"),
|
||||||
|
"currency": x.get("currency"),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def make_address_template(cls):
|
||||||
|
records = [
|
||||||
|
{
|
||||||
|
"doctype": "Address Template",
|
||||||
|
"country": "India",
|
||||||
|
"is_default": True,
|
||||||
|
"template": """
|
||||||
|
{{ address_line1 }}<br>
|
||||||
|
{% if address_line2 %}{{ address_line2 }}<br>{% endif -%}
|
||||||
|
{{ city }}<br>
|
||||||
|
{% if state %}{{ state }}<br>{% endif -%}
|
||||||
|
{% if pincode %}{{ pincode }}<br>{% endif -%}
|
||||||
|
{{ country }}<br>
|
||||||
|
<br>
|
||||||
|
{% if phone %}{{ _("Phone") }}: {{ phone }}<br>{% endif -%}
|
||||||
|
{% if fax %}{{ _("Fax") }}: {{ fax }}<br>{% endif -%}
|
||||||
|
{% if email_id %}{{ _("Email") }}: {{ email_id }}<br>{% endif -%}
|
||||||
|
""",
|
||||||
|
}
|
||||||
|
]
|
||||||
|
cls.address_template = []
|
||||||
|
for x in records:
|
||||||
|
if not frappe.db.exists("Address Template", {"country": x.get("country")}):
|
||||||
|
cls.address_template.append(frappe.get_doc(x).insert())
|
||||||
|
else:
|
||||||
|
cls.address_template.append(frappe.get_doc("Address Template", {"country": x.get("country")}))
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def make_uom(cls):
|
||||||
|
records = [{"doctype": "UOM", "uom_name": "Nos", "must_be_whole_number": 1, "common_code": "C62"}]
|
||||||
|
cls.uom = []
|
||||||
|
for x in records:
|
||||||
|
if not frappe.db.exists("UOM", {"uom_name": x.get("uom_name")}):
|
||||||
|
cls.warehouse_type.append(frappe.get_doc(x).insert())
|
||||||
|
else:
|
||||||
|
cls.warehouse_type.append(frappe.get_doc("UOM", {"uom_name": x.get("uom_name")}))
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def make_warehouse_type(cls):
|
||||||
|
records = [{"doctype": "Warehouse Type", "name": "Transit"}]
|
||||||
|
cls.warehouse_type = []
|
||||||
|
for x in records:
|
||||||
|
if not frappe.db.exists("Warehouse Type", {"name": x.get("name")}):
|
||||||
|
cls.warehouse_type.append(frappe.get_doc(x).insert())
|
||||||
|
else:
|
||||||
|
cls.warehouse_type.append(frappe.get_doc("Warehouse Type", {"name": x.get("name")}))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def make_monthly_distribution(cls):
|
def make_monthly_distribution(cls):
|
||||||
records = [
|
records = [
|
||||||
@@ -449,3 +567,58 @@ class ERPNextTestSuite(unittest.TestCase):
|
|||||||
cls.companies.append(frappe.get_doc(x).insert())
|
cls.companies.append(frappe.get_doc(x).insert())
|
||||||
else:
|
else:
|
||||||
cls.companies.append(frappe.get_doc("Company", {"company_name": x.get("company_name")}))
|
cls.companies.append(frappe.get_doc("Company", {"company_name": x.get("company_name")}))
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def make_fiscal_year(cls):
|
||||||
|
records = [
|
||||||
|
{
|
||||||
|
"doctype": "Fiscal Year",
|
||||||
|
"year": "_Test Short Fiscal Year 2011",
|
||||||
|
"is_short_year": 1,
|
||||||
|
"year_start_date": "2011-04-01",
|
||||||
|
"year_end_date": "2011-12-31",
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
start = 2012
|
||||||
|
this_year = now_datetime().year
|
||||||
|
end = now_datetime().year + 25
|
||||||
|
# The current year fails to load with the following error:
|
||||||
|
# Year start date or end date is overlapping with 2024. To avoid please set company
|
||||||
|
# This is a quick-fix: if current FY is needed, please refactor test data properly
|
||||||
|
for year in range(start, this_year):
|
||||||
|
records.append(
|
||||||
|
{
|
||||||
|
"doctype": "Fiscal Year",
|
||||||
|
"year": f"_Test Fiscal Year {year}",
|
||||||
|
"year_start_date": f"{year}-01-01",
|
||||||
|
"year_end_date": f"{year}-12-31",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
for year in range(this_year + 1, end):
|
||||||
|
records.append(
|
||||||
|
{
|
||||||
|
"doctype": "Fiscal Year",
|
||||||
|
"year": f"_Test Fiscal Year {year}",
|
||||||
|
"year_start_date": f"{year}-01-01",
|
||||||
|
"year_end_date": f"{year}-12-31",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
cls.fiscal_year = []
|
||||||
|
for x in records:
|
||||||
|
if not frappe.db.exists(
|
||||||
|
"Fiscal Year",
|
||||||
|
{"year_start_date": x.get("year_start_date"), "year_end_date": x.get("year_end_date")},
|
||||||
|
):
|
||||||
|
cls.fiscal_year.append(frappe.get_doc(x).insert())
|
||||||
|
else:
|
||||||
|
cls.fiscal_year.append(
|
||||||
|
frappe.get_doc(
|
||||||
|
"Fiscal Year",
|
||||||
|
{
|
||||||
|
"year_start_date": x.get("year_start_date"),
|
||||||
|
"year_end_date": x.get("year_end_date"),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user