From 98c2a052e5539f6cedada3a92cbfb4b12dedec2d Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 5 May 2014 18:41:41 +0530 Subject: [PATCH] Fixes in pricing rule testcases #565 --- erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py | 6 ++++-- erpnext/stock/get_item_details.py | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py index e3d79f161e..003c6e66b4 100644 --- a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py +++ b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py @@ -11,6 +11,8 @@ class TestPricingRule(unittest.TestCase): from erpnext.stock.get_item_details import get_item_details from frappe import MandatoryError + frappe.db.sql("delete from `tabPricing Rule`") + test_record = { "doctype": "Pricing Rule", "apply_on": "Item Code", @@ -69,8 +71,8 @@ class TestPricingRule(unittest.TestCase): self.assertEquals(details.get("discount_percentage"), 5) frappe.db.sql("update `tabPricing Rule` set priority=NULL where campaign='_Test Campaign'") - details = get_item_details(args) - self.assertEquals(details.get("discount_percentage"), 15) + from erpnext.stock.get_item_details import MultiplePricingRuleConflict + self.assertRaises (MultiplePricingRuleConflict, get_item_details, args) args.item_code = "_Test Item 2" details = get_item_details(args) diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index ae2b3a216d..f9c7526a96 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -7,6 +7,8 @@ from frappe import _, throw from frappe.utils import flt, cint, add_days import json +class MultiplePricingRuleConflict(frappe.ValidationError): pass + @frappe.whitelist() def get_item_details(args): """ @@ -332,10 +334,9 @@ def filter_pricing_rules(args_dict, pricing_rules): break if len(pricing_rules) > 1: - # pricing_rules = sorted(pricing_rules, key=lambda x: x[price_or_discount]) frappe.throw(_("Multiple Price Rule exists with same criteria, please resolve \ conflict by assigning priority. Price Rules: {0}") - .format("\n".join([d.name for d in pricing_rules]))) + .format("\n".join([d.name for d in pricing_rules])), MultiplePricingRuleConflict) elif pricing_rules: return pricing_rules[0]