From 2505e6219852e809a8b1090d3ca2b60df6a916a2 Mon Sep 17 00:00:00 2001 From: tunde Date: Tue, 16 May 2017 00:00:44 +0100 Subject: [PATCH] fixes #8842 and adds tests --- erpnext/__init__.py | 9 ++++++++- erpnext/test_init.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 erpnext/test_init.py diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 6f73741e856..442050d4c9d 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -4,6 +4,7 @@ import frappe __version__ = '8.0.26' + def get_default_company(user=None): '''Get default company for user''' from frappe.defaults import get_user_default_as_list @@ -19,12 +20,14 @@ def get_default_company(user=None): return default_company + def get_default_currency(): '''Returns the currency of the default company''' company = get_default_company() if company: return frappe.db.get_value('Company', company, 'default_currency') + def get_company_currency(company): '''Returns the default company currency''' if not frappe.flags.company_currency: @@ -33,11 +36,13 @@ def get_company_currency(company): frappe.flags.company_currency[company] = frappe.db.get_value('Company', company, 'default_currency') return frappe.flags.company_currency[company] + def set_perpetual_inventory(enable=1): accounts_settings = frappe.get_doc("Accounts Settings") accounts_settings.auto_accounting_for_stock = enable accounts_settings.save() + def encode_company_abbr(name, company): '''Returns name encoded with company abbreviation''' company_abbr = frappe.db.get_value("Company", company, "abbr") @@ -46,4 +51,6 @@ def encode_company_abbr(name, company): if parts[-1].lower() != company_abbr.lower(): parts.append(company_abbr) - return " - ".join([parts[0], company_abbr]) + return " - ".join(parts) + + diff --git a/erpnext/test_init.py b/erpnext/test_init.py new file mode 100644 index 00000000000..aad2dcc8f1c --- /dev/null +++ b/erpnext/test_init.py @@ -0,0 +1,42 @@ +import unittest + +import frappe +from erpnext import encode_company_abbr +import six.moves.range + +test_records = frappe.get_test_records('Company') + + +class TestInit(unittest.TestCase): + def setUp(self): + self.company = frappe.new_doc("Company") + self.company.company_name = "COA from Existing Company" + self.company.abbr = "CFEC" + self.company.default_currency = "INR" + self.company.create_chart_of_accounts_based_on = "Existing Company" + self.company.existing_company = "_Test Company" + self.company.save() + + def test_encode_company_abbr(self): + abbr = self.company.abbr + names = [ + "Warehouse Name", "ERPNext Foundation India", "Gold - Member - {a}".format(a=abbr), + " - {a}".format(a=abbr), "ERPNext - Foundation - India", + "ERPNext Foundation India - {a}".format(a=abbr), + "No-Space-{a}".format(a=abbr), "- Warehouse" + ] + + expected_names = [ + "Warehouse Name - {a}".format(a=abbr), "ERPNext Foundation India - {a}".format(a=abbr), + "Gold - Member - {a}".format(a=abbr), " - {a}".format(a=abbr), + "ERPNext - Foundation - India - {a}".format(a=abbr), + "ERPNext Foundation India - {a}".format(a=abbr), "No-Space-{a} - {a}".format(a=self.company.abbr), + "- Warehouse - {a}".format(a=abbr) + ] + + for i in range(len(names)): + enc_name = encode_company_abbr(names[i], self.company) + self.assertTrue( + enc_name == expected_names[i], + "{enc} is not same as {exp}".format(enc=enc_name, exp=expected_names[i]) + ) \ No newline at end of file