Fixes in pricing rule testcases #565
diff --git a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
index e3d79f1..003c6e6 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 @@
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 @@
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 ae2b3a2..f9c7526 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -7,6 +7,8 @@
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 @@
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]