예제 #1
0
    def clean(self, value):
        """
        Check if given CC number is valid and one of the
        card types we accept
        """
        non_decimal = re.compile(r'\D+')
        value = non_decimal.sub('', value.strip())

        if value and not bankcards.luhn(value):
            raise forms.ValidationError(
                _("Please enter a valid credit card number."))

        if hasattr(self, 'accepted_cards'):
            card_type = bankcards.bankcard_type(value)
            if card_type not in self.accepted_cards:
                raise forms.ValidationError(
                    _("%s cards are not accepted." % card_type))

        return super(BankcardNumberField, self).clean(value)
예제 #2
0
 def test_invalid_numbers(self):
     for number in self.invalid_numbers:
         self.assertFalse(bankcards.luhn(number))
예제 #3
0
 def test_valid_numbers(self):
     for number in self.valid_numbers:
         self.assertTrue(bankcards.luhn(number))
예제 #4
0
def is_not_valid(n):
    assert bankcards.luhn(n) is False
예제 #5
0
def is_valid(n):
    assert bankcards.luhn(n) is True
예제 #6
0
def is_not_valid(n):
    assert bankcards.luhn(n) is False
예제 #7
0
def is_valid(n):
    assert bankcards.luhn(n) is True
예제 #8
0
 def test_invalid_numbers(self):
     for number in self.invalid_numbers:
         self.assertFalse(bankcards.luhn(number))
예제 #9
0
 def test_valid_numbers(self):
     for number in self.valid_numbers:
         self.assertTrue(bankcards.luhn(number))