Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

model_tests.py 1.5KB

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