From 832988e2fd69d47e7f410130c15fca89c4184285 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 23 May 2016 13:03:59 +0530 Subject: [PATCH] test case fixed --- erpnext/accounts/doctype/budget/budget.py | 6 +- .../accounts/doctype/budget/test_budget.py | 81 ++++++++++--------- .../doctype/stock_entry/stock_entry_utils.py | 3 +- .../doctype/stock_entry/test_stock_entry.py | 9 ++- 4 files changed, 53 insertions(+), 46 deletions(-) diff --git a/erpnext/accounts/doctype/budget/budget.py b/erpnext/accounts/doctype/budget/budget.py index 26243ea7b3..d28a5f923e 100644 --- a/erpnext/accounts/doctype/budget/budget.py +++ b/erpnext/accounts/doctype/budget/budget.py @@ -58,15 +58,15 @@ def validate_expense_against_budget(args): b.action_if_annual_budget_exceeded, b.action_if_accumulated_monthly_budget_exceeded from `tabBudget` b, `tabBudget Account` ba where - b.name=ba.parent and b.fiscal_year=%s and ba.account=%s + b.name=ba.parent and b.fiscal_year=%s and ba.account=%s and b.docstatus=1 and exists(select name from `tabCost Center` where lft<=%s and rgt>=%s and name=b.cost_center) """, (args.fiscal_year, args.account, cc_lft, cc_rgt), as_dict=True) - + for budget in budget_records: if budget.budget_amount: yearly_action = budget.action_if_annual_budget_exceeded monthly_action = budget.action_if_accumulated_monthly_budget_exceeded - + if monthly_action in ["Stop", "Warn"]: budget_amount = get_accumulated_monthly_budget(budget.monthly_distribution, args.posting_date, args.fiscal_year, budget.budget_amount) diff --git a/erpnext/accounts/doctype/budget/test_budget.py b/erpnext/accounts/doctype/budget/test_budget.py index 60373e4f05..78f5690766 100644 --- a/erpnext/accounts/doctype/budget/test_budget.py +++ b/erpnext/accounts/doctype/budget/test_budget.py @@ -10,44 +10,50 @@ from erpnext.accounts.doctype.journal_entry.test_journal_entry import make_journ class TestBudget(unittest.TestCase): def test_monthly_budget_crossed_ignore(self): - budget = make_budget() - frappe.db.set_value("Budget", budget, "action_if_accumulated_monthly_budget_exceeded", "Ignore") - set_total_expense_zero("2013-02-28") + budget = make_budget() + jv = make_journal_entry("_Test Account Cost for Goods Sold - _TC", "_Test Bank - _TC", 40000, "_Test Cost Center - _TC", submit=True) self.assertTrue(frappe.db.get_value("GL Entry", {"voucher_type": "Journal Entry", "voucher_no": jv.name})) + + budget.cancel() def test_monthly_budget_crossed_stop(self): - budget = make_budget() - frappe.db.set_value("Budget", budget, "action_if_accumulated_monthly_budget_exceeded", "Stop") - set_total_expense_zero("2013-02-28") + budget = make_budget() + + frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop") + jv = make_journal_entry("_Test Account Cost for Goods Sold - _TC", "_Test Bank - _TC", 40000, "_Test Cost Center - _TC") self.assertRaises(BudgetError, jv.submit) + + budget.load_from_db() + budget.cancel() def test_yearly_budget_crossed_stop(self): - self.test_monthly_budget_crossed_ignore() - set_total_expense_zero("2013-02-28") + budget = make_budget() + jv = make_journal_entry("_Test Account Cost for Goods Sold - _TC", "_Test Bank - _TC", 150000, "_Test Cost Center - _TC") self.assertRaises(BudgetError, jv.submit) + + budget.cancel() def test_monthly_budget_on_cancellation(self): - budget = make_budget() - frappe.db.set_value("Budget", budget, "action_if_accumulated_monthly_budget_exceeded", "Ignore") - set_total_expense_zero("2013-02-28") + budget = make_budget() + jv1 = make_journal_entry("_Test Account Cost for Goods Sold - _TC", "_Test Bank - _TC", 20000, "_Test Cost Center - _TC", submit=True) @@ -60,21 +66,27 @@ class TestBudget(unittest.TestCase): self.assertTrue(frappe.db.get_value("GL Entry", {"voucher_type": "Journal Entry", "voucher_no": jv2.name})) - frappe.db.set_value("Budget", budget, "action_if_accumulated_monthly_budget_exceeded", "Stop") + frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop") self.assertRaises(BudgetError, jv1.cancel) + budget.load_from_db() + budget.cancel() + def test_monthly_budget_against_group_cost_center(self): - budget = make_budget("_Test Company - _TC") - frappe.db.set_value("Budget", budget, "action_if_accumulated_monthly_budget_exceeded", "Stop") - set_total_expense_zero("2013-02-28") set_total_expense_zero("2013-02-28", "_Test Cost Center 2 - _TC") + + budget = make_budget("_Test Company - _TC") + frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop") jv = make_journal_entry("_Test Account Cost for Goods Sold - _TC", "_Test Bank - _TC", 40000, "_Test Cost Center 2 - _TC") self.assertRaises(BudgetError, jv.submit) + + budget.load_from_db() + budget.cancel() def set_total_expense_zero(posting_date, cost_center=None): existing_expense = get_actual_expense({ @@ -89,27 +101,20 @@ def set_total_expense_zero(posting_date, cost_center=None): "_Test Bank - _TC", -existing_expense, "_Test Cost Center - _TC", submit=True) def make_budget(cost_center=None): - existing_budget = frappe.db.get_value("Budget", - {"cost_center": cost_center or "_Test Cost Center - _TC", - "fiscal_year": "_Test Fiscal Year 2013", "company": "_Test Company"}) + budget = frappe.new_doc("Budget") + budget.cost_center = cost_center or "_Test Cost Center - _TC" + budget.fiscal_year = "_Test Fiscal Year 2013" + budget.monthly_distribution = "_Test Distribution" + budget.company = "_Test Company" + budget.action_if_annual_budget_exceeded = "Stop" + budget.action_if_accumulated_monthly_budget_exceeded = "Ignore" + + budget.append("accounts", { + "account": "_Test Account Cost for Goods Sold - _TC", + "budget_amount": 100000 + }) + + budget.insert() + budget.submit() - if not existing_budget: - budget = frappe.new_doc("Budget") - budget.cost_center = cost_center or "_Test Cost Center - _TC" - budget.fiscal_year = "_Test Fiscal Year 2013" - budget.monthly_distribution = "_Test Distribution" - budget.company = "_Test Company" - budget.action_if_annual_budget_exceeded = "Stop" - budget.action_if_accumulated_monthly_budget_exceeded = "Stop" - - budget.append("accounts", { - "account": "_Test Account Cost for Goods Sold - _TC", - "budget_amount": 100000 - }) - - budget.insert() - budget.submit() - - return budget.name - else: - return existing_budget \ No newline at end of file + return budget \ No newline at end of file diff --git a/erpnext/stock/doctype/stock_entry/stock_entry_utils.py b/erpnext/stock/doctype/stock_entry/stock_entry_utils.py index 0ac941085c..b75eeeadd7 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry_utils.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry_utils.py @@ -70,7 +70,8 @@ def make_stock_entry(**args): "basic_rate": args.rate or args.basic_rate, "conversion_factor": 1.0, "serial_no": args.serial_no, - 'cost_center': args.cost_center + 'cost_center': args.cost_center, + 'expense_account': args.expense_account }) if not args.do_not_save: diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py index 221724f2cf..0c33ff7f4f 100644 --- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py @@ -122,8 +122,8 @@ class TestStockEntry(unittest.TestCase): set_perpetual_inventory() mr = make_stock_entry(item_code="_Test Item", target="_Test Warehouse - _TC", - qty=50, basic_rate=100) - + qty=50, basic_rate=100, expense_account="Stock Adjustment - _TC") + stock_in_hand_account = frappe.db.get_value("Account", {"account_type": "Warehouse", "warehouse": mr.get("items")[0].t_warehouse}) @@ -149,9 +149,10 @@ class TestStockEntry(unittest.TestCase): set_perpetual_inventory() make_stock_entry(item_code="_Test Item", target="_Test Warehouse - _TC", - qty=50, basic_rate=100) + qty=50, basic_rate=100, expense_account="Stock Adjustment - _TC") - mi = make_stock_entry(item_code="_Test Item", source="_Test Warehouse - _TC", qty=40) + mi = make_stock_entry(item_code="_Test Item", source="_Test Warehouse - _TC", + qty=40, expense_account="Stock Adjustment - _TC") self.check_stock_ledger_entries("Stock Entry", mi.name, [["_Test Item", "_Test Warehouse - _TC", -40.0]])