def test_is_valid_can_be_called_repeatedly(self):
     # This test was added, because we saw many implementations
     # in which the first call to is_valid() worked, but the
     # second call failed().
     number = Luhn(8739567)
     self.assertTrue(number.is_valid())
     self.assertTrue(number.is_valid())
Exemple #2
0
 def test_is_valid_can_be_called_repeatedly(self):
     # Additional track specific test case
     # This test was added, because we saw many implementations
     # in which the first call to is_valid() worked, but the
     # second call failed().
     number = Luhn("055 444 285")
     self.assertTrue(number.is_valid())
     self.assertTrue(number.is_valid())
Exemple #3
0
 def test_validation(self):
     l = Luhn()
     for num in self.VISA:
         self.assertTrue(l.is_valid_mod_10(num))
     for num in self.MASTERCARD:
         self.assertTrue(l.is_valid_mod_10(num))
     for num in self.DISCOVER:
         self.assertTrue(l.is_valid_mod_10(num))
     for num in self.AMEX:
         self.assertTrue(l.is_valid_mod_10(num))
Exemple #4
0
    def test_invalid(self):
        l = Luhn()

        self.assertFalse(l.is_valid_mod_10(20))
        self.assertFalse(l.is_valid_mod_10(21))
        self.assertFalse(l.is_valid_mod_10(22))
        self.assertFalse(l.is_valid_mod_10(23))
        self.assertFalse(l.is_valid_mod_10(24))
        self.assertFalse(l.is_valid_mod_10(25))

        self.assertTrue(l.is_valid_mod_10(26))

        self.assertFalse(l.is_valid_mod_10(27))
        self.assertFalse(l.is_valid_mod_10(28))
        self.assertFalse(l.is_valid_mod_10(29))
        self.assertFalse(l.is_valid_mod_10(30))
 def test_a_valid_canadian_sin(self):
     self.assertIs(Luhn("055 444 285").valid(), True)
 def test_a_simple_valid_sin_that_remains_valid_if_reversed(self):
     self.assertIs(Luhn("059").valid(), True)
 def test_input_digit_9_is_correctly_converted_to_output_digit_9(self):
     self.assertIs(Luhn("091").is_valid(), True)
 def test_single_zero_with_space_is_invalid(self):
     self.assertIs(Luhn("0").is_valid(), False)
 def test_valid_strings_with_punctuation_included_become_invalid(self):
     self.assertIs(Luhn("055-444-285").is_valid(), False)
 def test_invalid_credit_card(self):
     self.assertIs(Luhn("8273 1232 7352 0569").is_valid(), False)
Exemple #11
0
 def test_generation(self):
     l = Luhn()
     generator = l.generate(14)
     generated_numbers = [generator.next() for i in range(len(self.VALID_14_DIGIT_MOD_10))]
     self.assertItemsEqual(self.VALID_14_DIGIT_MOD_10, generated_numbers)
Exemple #12
0
 def test_using_ascii_value_for_doubled_non_digit_isnot_allowed(self):
     self.assertIs(Luhn(":9").valid(), False)
 def test_create_valid_number1(self):
     self.assertEqual(1230, Luhn.create(123))
 def test_valid_number(self):
     self.assertTrue(Luhn(8739567).is_valid())
 def test_invalid_number(self):
     self.assertFalse(Luhn(738).is_valid())
 def test_ckecksum2(self):
     self.assertEqual(21, Luhn(201773).checksum())
 def test_checksum1(self):
     self.assertEqual(22, Luhn(4913).checksum())
Exemple #18
0
 def test_create_valid_number2(self):
     self.assertEqual(8739567, Luhn.create(873956))#8739560 = 7769530 =37
 def test_create_valid_number2(self):
     self.assertEqual(8739567, Luhn.create(873956))
 def test_a_valid_Canadian_SIN(self):
     self.assertIs(Luhn("055 444 285").is_valid(), True)
 def test_single_digit_strings_can_not_be_valid(self):
     self.assertIs(Luhn("1").is_valid(), False)
 def test_create_valid_number3(self):
     self.assertEqual(8372637564, Luhn.create(837263756))
 def test_invalid_Canadian_SIN(self):
     self.assertIs(Luhn("055 444 286").is_valid(), False)
 def test_addends(self):
     # uses a Counter to avoid specifying order of return value
     self.assertEqual(Counter([1, 4, 1, 4, 1]),
                      Counter(Luhn(12121).addends()))
 def test_valid_strings_with_a_non_digit_included_become_invalid(self):
     self.assertIs(Luhn("055a 444 285").is_valid(), False)
Exemple #26
0
    def test_clean_should_remove_hyphen(self):
        cc_number_hyphen = '4539-1488-0343-6467'
        luhn_instance = Luhn(cc_number_hyphen)
        luhn_instance.clean()

        self.assertEqual(luhn_instance.cc_number, '4539148803436467')
 def test_valid_strings_with_symbols_included_become_invalid(self):
     self.assertIs(Luhn("055£ 444$ 285").is_valid(), False)
Exemple #28
0
class LuhnTest(unittest.TestCase):
    def setUp(self):
        cc_number = '4539 1488 0343 6467'
        self.luhn_instance = Luhn(cc_number)

    def test_clean_should_remove_spaces(self):
        self.luhn_instance.clean()

        self.assertEqual(self.luhn_instance.cc_number, '4539148803436467')

    def test_clean_should_remove_hyphen(self):
        cc_number_hyphen = '4539-1488-0343-6467'
        luhn_instance = Luhn(cc_number_hyphen)
        luhn_instance.clean()

        self.assertEqual(luhn_instance.cc_number, '4539148803436467')

    def test_check_selection_seconds_digits(self):
        self.luhn_instance.clean()
        self.luhn_instance.select_digits()

        self.assertEqual(self.luhn_instance.seconds, [6, 6, 4, 0, 8, 1, 3, 4])

    def test_check_selection_firsts_digits(self):
        self.luhn_instance.clean()
        self.luhn_instance.select_digits()

        self.assertEqual(self.luhn_instance.firsts, [7, 4, 3, 3, 8, 4, 9, 5])

    def test_multiply_by_two_should_subtract_nine_if_greater_than_nine(self):
        self.luhn_instance.clean()
        self.luhn_instance.select_digits()
        self.luhn_instance.double_seconds()

        self.assertEqual(self.luhn_instance.seconds, [3, 3, 8, 0, 7, 2, 6, 8])

    def test_check_should_pass_if_valid_number(self):
        is_valid = self.luhn_instance.check()

        self.assertEqual(is_valid, True)

    def test_check_should_pass_if_invalid_number(self):
        cc_number = '8273 1232 7352 0569'
        luhn_instance = Luhn(cc_number)
        is_valid = luhn_instance.check()

        self.assertEqual(is_valid, False)
 def test_more_than_a_single_zero_is_valid(self):
     self.assertIs(Luhn("0000 0").is_valid(), True)
Exemple #30
0
    def test_check_should_pass_if_invalid_number(self):
        cc_number = '8273 1232 7352 0569'
        luhn_instance = Luhn(cc_number)
        is_valid = luhn_instance.check()

        self.assertEqual(is_valid, False)
 def test_a_single_zero_is_invalid(self):
     self.assertIs(Luhn("0").valid(), False)
Exemple #32
0
 def setUp(self):
     cc_number = '4539 1488 0343 6467'
     self.luhn_instance = Luhn(cc_number)
 def test_a_simple_valid_sin_that_becomes_invalid_if_reversed(self):
     self.assertIs(Luhn("59").valid(), True)
Exemple #34
0
 def test_valid_number_with_an_even_number_of_digits(self):
     self.assertIs(Luhn("095 245 88").valid(), True)
Exemple #35
0
 def test_create_valid_number1(self):
     self.assertEqual(1230, Luhn.create(123))
Exemple #36
0
 def test_valid_number_with_an_odd_number_of_spaces(self):
     self.assertIs(Luhn("234 567 891 234").valid(), True)
Exemple #37
0
 def test_create_valid_number3(self):
     self.assertEqual(8372637564, Luhn.create(837263756))
Exemple #38
0
 def test_valid_strings_with_non_digit_added_at_end_become_invalid(self):
     self.assertIs(Luhn("059a").valid(), False)