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

model_tests.py 1.5KB

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