Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

model_tests.py 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. class TestAPaymentSource(TestCase):
  7. def setUp(self):
  8. order = factories.create_order()
  9. self.source = factories.SourceFactory(order=order)
  10. def test_allocation_doesnt_error(self):
  11. self.source.allocate(D('100.00'))
  12. def test_debit_doesnt_error(self):
  13. self.source.allocate(D('100.00'))
  14. self.source.debit(D('80.00'))
  15. def test_full_debit_doesnt_error(self):
  16. self.source.allocate(D('100.00'))
  17. self.source.debit()
  18. self.assertEqual(D('0.00'), self.source.balance)
  19. def test_refund_doesnt_error(self):
  20. self.source.allocate(D('100.00'))
  21. self.source.debit(D('80.00'))
  22. self.source.refund(D('50.00'))
  23. class TestBankcard(TestCase):
  24. def test_cardtype_persists_after_save(self):
  25. user = factories.UserFactory()
  26. end = datetime.date(day=1, month=1, year=2010)
  27. bankcard = Bankcard(
  28. user=user, number="5500000000000004", expiry_date=end)
  29. self.assertEqual('Mastercard', bankcard.card_type)
  30. bankcard.save()
  31. self.assertEqual('Mastercard', bankcard.card_type)
  32. reloaded_bankcard = Bankcard.objects.get(id=bankcard.id)
  33. self.assertEqual('Mastercard', reloaded_bankcard.card_type)