mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-29 18:04:46 +00:00
test: add test case for coupon without maximum use
(cherry picked from commit 3413bad51d)
This commit is contained in:
@@ -142,3 +142,39 @@ class TestCouponCode(unittest.TestCase):
|
|||||||
|
|
||||||
so.submit()
|
so.submit()
|
||||||
self.assertEqual(frappe.db.get_value("Coupon Code", "SAVE30", "used"), 1)
|
self.assertEqual(frappe.db.get_value("Coupon Code", "SAVE30", "used"), 1)
|
||||||
|
|
||||||
|
def test_coupon_without_max_use(self):
|
||||||
|
from erpnext.accounts.doctype.pricing_rule.utils import (
|
||||||
|
update_coupon_code_count,
|
||||||
|
validate_coupon_code,
|
||||||
|
)
|
||||||
|
|
||||||
|
coupon = frappe.get_doc(
|
||||||
|
{
|
||||||
|
"doctype": "Coupon Code",
|
||||||
|
"coupon_name": "_Test Coupon Without Max Use",
|
||||||
|
"coupon_code": "TESTUNLIMITED",
|
||||||
|
"from_external_ecomm_platform": 1, # avoids requirement for pricing rule
|
||||||
|
"valid_from": frappe.utils.nowdate(),
|
||||||
|
"maximum_use": 0,
|
||||||
|
"used": 0,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
coupon.insert(ignore_permissions=True)
|
||||||
|
|
||||||
|
# Validate initial state
|
||||||
|
self.assertEqual(coupon.used, 0)
|
||||||
|
self.assertEqual(coupon.maximum_use, 0)
|
||||||
|
|
||||||
|
# Use coupon multiple times
|
||||||
|
for _ in range(5):
|
||||||
|
validate_coupon_code(coupon.name)
|
||||||
|
update_coupon_code_count(coupon.name, "used")
|
||||||
|
coupon.reload()
|
||||||
|
|
||||||
|
# Check that the coupon is still valid and usage count increased
|
||||||
|
self.assertEqual(coupon.used, 5)
|
||||||
|
validate_coupon_code(coupon.name) # This should not raise an error
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
coupon.delete()
|
||||||
|
|||||||
Reference in New Issue
Block a user