Skip to content

Commit 324b613

Browse files
committed
feat: add unit test for voucher usage functionality
Implemented a new test case to validate the usage of vouchers, including checks for validity, remaining amounts, and database retrieval of usage records.
1 parent bbdb88e commit 324b613

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

src/budy/test/voucher.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,3 +343,36 @@ def test_disuse(self):
343343
self.assertEqual(voucher.is_percent, True)
344344
self.assertEqual(isinstance(voucher.amount, commons.Decimal), True)
345345
self.assertEqual(isinstance(voucher.open_amount, commons.Decimal), True)
346+
347+
def test_voucher_use(self):
348+
voucher = budy.Voucher(key="TESTKEY", amount=50.0)
349+
voucher.save()
350+
351+
voucher_use = voucher.use_s(25.0, justification="Test usage", save_use=True)
352+
353+
self.assertEqual(voucher.is_valid(), True)
354+
self.assertEqual(voucher.is_valid(amount=25.0), True)
355+
self.assertEqual(voucher.is_valid(amount=50.0), False)
356+
self.assertEqual(voucher.key, "TESTKEY")
357+
self.assertEqual(voucher.used, False)
358+
self.assertEqual(voucher.amount, 50.0)
359+
self.assertEqual(voucher.open_amount, 25.0)
360+
self.assertEqual(voucher.used_amount, 25.0)
361+
362+
self.assertEqual(voucher_use.usage_type, "value")
363+
self.assertEqual(voucher_use.amount, 25.0)
364+
self.assertEqual(voucher_use.justification, "Test usage")
365+
self.assertEqual(voucher_use.voucher.id, voucher.id)
366+
self.assertIsNone(voucher_use.account)
367+
368+
voucher_use_db = budy.VoucherUse.get(id=voucher_use.id)
369+
370+
self.assertEqual(voucher_use_db.usage_type, "value")
371+
self.assertEqual(voucher_use_db.amount, 25.0)
372+
self.assertEqual(voucher_use_db.justification, "Test usage")
373+
self.assertEqual(voucher_use_db.voucher.id, voucher.id)
374+
self.assertIsNone(voucher_use_db.account)
375+
376+
self.assertIsInstance(voucher_use_db.amount, float)
377+
self.assertIsInstance(voucher_use_db.usage_type, str)
378+
self.assertIsInstance(voucher_use_db.justification, str)

0 commit comments

Comments
 (0)