Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from django.test import TestCase
  2. from oscar.apps.payment import bankcards
  3. class TestBankCardValidation(TestCase):
  4. fixture_data = {
  5. bankcards.VISA: ('4111111111111111',),
  6. bankcards.MASTERCARD: ('5500000000000004',),
  7. bankcards.DISCOVER: ('6011000000000004',),
  8. bankcards.AMEX: ('340000000000009',),
  9. None: ('1000010000000007',) # Magic number
  10. }
  11. valid_numbers = [
  12. '4111111111111111',
  13. '5500000000000004',
  14. '6011000000000004',
  15. '340000000000009']
  16. invalid_numbers = [
  17. '4111111111111110',
  18. '5500000000000009',
  19. '6011000000000000',
  20. '340000000000005']
  21. def test_bankcard_type_sniffing(self):
  22. for expected_bankcard_type, numbers in self.fixture_data.items():
  23. for number in numbers:
  24. sniffed_bankcard_type = bankcards.bankcard_type(number)
  25. self.assertEqual(expected_bankcard_type, sniffed_bankcard_type)
  26. def test_valid_numbers(self):
  27. for number in self.valid_numbers:
  28. self.assertTrue(bankcards.luhn(number))
  29. def test_invalid_numbers(self):
  30. for number in self.invalid_numbers:
  31. self.assertFalse(bankcards.luhn(number))