You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

model_tests.py 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from decimal import Decimal as D
  2. import datetime
  3. from django.test import TestCase
  4. from oscar.apps.payment.models import Bankcard
  5. from oscar.test import factories
  6. from oscar.test.factories import SourceFactory
  7. class TestAPaymentSource(TestCase):
  8. def setUp(self):
  9. order = factories.create_order()
  10. self.source = SourceFactory(order=order)
  11. def test_allocation_doesnt_error(self):
  12. self.source.allocate(D('100.00'))
  13. def test_debit_doesnt_error(self):
  14. self.source.allocate(D('100.00'))
  15. self.source.debit(D('80.00'))
  16. def test_full_debit_doesnt_error(self):
  17. self.source.allocate(D('100.00'))
  18. self.source.debit()
  19. self.assertEqual(D('0.00'), self.source.balance)
  20. def test_refund_doesnt_error(self):
  21. self.source.allocate(D('100.00'))
  22. self.source.debit(D('80.00'))
  23. self.source.refund(D('50.00'))
  24. class TestBankcard(TestCase):
  25. def test_cardtype_persists_after_save(self):
  26. user = factories.UserFactory()
  27. end = datetime.date(day=1, month=1, year=2010)
  28. bankcard = Bankcard(
  29. user=user, number="5500000000000004", expiry_date=end)
  30. self.assertEqual('Mastercard', bankcard.card_type)
  31. bankcard.save()
  32. self.assertEqual('Mastercard', bankcard.card_type)
  33. reloaded_bankcard = Bankcard.objects.get(id=bankcard.id)
  34. self.assertEqual('Mastercard', reloaded_bankcard.card_type)