14
14
mastercard ,
15
15
unionpay ,
16
16
visa ,
17
+ mir
17
18
)
18
19
19
20
visa_cards = ["4242424242424242" , "4000002760003184" ]
23
24
diners_cards = ["3056930009020004" , "36227206271667" ]
24
25
jcb_cards = ["3566002020360505" ]
25
26
discover_cards = ["6011111111111117" , "6011000990139424" ]
27
+ mir_cards = ["2200123456789012" , "2204987654321098" ]
26
28
27
29
28
30
@pytest .mark .parametrize (
33
35
+ unionpay_cards
34
36
+ diners_cards
35
37
+ jcb_cards
36
- + discover_cards ,
38
+ + discover_cards
39
+ + mir_cards ,
37
40
)
38
41
def test_returns_true_on_valid_card_number (value : str ):
39
42
"""Test returns true on valid card number."""
40
43
assert card_number (value )
41
44
42
45
43
- @pytest .mark .parametrize ("value" , ["4242424242424240" , "4000002760003180" , "400000276000318X" ])
46
+ @pytest .mark .parametrize ("value" , ["4242424242424240" , "4000002760003180" , "400000276000318X" , "220012345678901X" ])
44
47
def test_returns_failed_on_valid_card_number (value : str ):
45
48
"""Test returns failed on valid card number."""
46
49
assert isinstance (card_number (value ), ValidationError )
@@ -69,7 +72,7 @@ def test_returns_true_on_valid_mastercard(value: str):
69
72
70
73
@pytest .mark .parametrize (
71
74
"value" ,
72
- visa_cards + amex_cards + unionpay_cards + diners_cards + jcb_cards + discover_cards ,
75
+ visa_cards + amex_cards + unionpay_cards + diners_cards + jcb_cards + discover_cards + mir_cards ,
73
76
)
74
77
def test_returns_failed_on_valid_mastercard (value : str ):
75
78
"""Test returns failed on valid mastercard."""
@@ -84,7 +87,7 @@ def test_returns_true_on_valid_amex(value: str):
84
87
85
88
@pytest .mark .parametrize (
86
89
"value" ,
87
- visa_cards + mastercard_cards + unionpay_cards + diners_cards + jcb_cards + discover_cards ,
90
+ visa_cards + mastercard_cards + unionpay_cards + diners_cards + jcb_cards + discover_cards + mir_cards ,
88
91
)
89
92
def test_returns_failed_on_valid_amex (value : str ):
90
93
"""Test returns failed on valid amex."""
@@ -99,7 +102,7 @@ def test_returns_true_on_valid_unionpay(value: str):
99
102
100
103
@pytest .mark .parametrize (
101
104
"value" ,
102
- visa_cards + mastercard_cards + amex_cards + diners_cards + jcb_cards + discover_cards ,
105
+ visa_cards + mastercard_cards + amex_cards + diners_cards + jcb_cards + discover_cards + mir_cards ,
103
106
)
104
107
def test_returns_failed_on_valid_unionpay (value : str ):
105
108
"""Test returns failed on valid unionpay."""
@@ -114,7 +117,7 @@ def test_returns_true_on_valid_diners(value: str):
114
117
115
118
@pytest .mark .parametrize (
116
119
"value" ,
117
- visa_cards + mastercard_cards + amex_cards + unionpay_cards + jcb_cards + discover_cards ,
120
+ visa_cards + mastercard_cards + amex_cards + unionpay_cards + jcb_cards + discover_cards + mir_cards ,
118
121
)
119
122
def test_returns_failed_on_valid_diners (value : str ):
120
123
"""Test returns failed on valid diners."""
@@ -129,7 +132,7 @@ def test_returns_true_on_valid_jcb(value: str):
129
132
130
133
@pytest .mark .parametrize (
131
134
"value" ,
132
- visa_cards + mastercard_cards + amex_cards + unionpay_cards + diners_cards + discover_cards ,
135
+ visa_cards + mastercard_cards + amex_cards + unionpay_cards + diners_cards + discover_cards + mir_cards ,
133
136
)
134
137
def test_returns_failed_on_valid_jcb (value : str ):
135
138
"""Test returns failed on valid jcb."""
@@ -144,8 +147,23 @@ def test_returns_true_on_valid_discover(value: str):
144
147
145
148
@pytest .mark .parametrize (
146
149
"value" ,
147
- visa_cards + mastercard_cards + amex_cards + unionpay_cards + diners_cards + jcb_cards ,
150
+ visa_cards + mastercard_cards + amex_cards + unionpay_cards + diners_cards + jcb_cards + mir_cards ,
148
151
)
149
152
def test_returns_failed_on_valid_discover (value : str ):
150
153
"""Test returns failed on valid discover."""
151
154
assert isinstance (discover (value ), ValidationError )
155
+
156
+
157
+ @pytest .mark .parametrize ("value" , mir_cards )
158
+ def test_returns_true_on_valid_mir (value : str ):
159
+ """Test returns true on valid Mir card."""
160
+ assert mir (value )
161
+
162
+
163
+ @pytest .mark .parametrize (
164
+ "value" ,
165
+ visa_cards + mastercard_cards + amex_cards + unionpay_cards + diners_cards + jcb_cards + discover_cards ,
166
+ )
167
+ def test_returns_failed_on_valid_mir (value : str ):
168
+ """Test returns failed on invalid Mir card (other payment systems)."""
169
+ assert isinstance (mir (value ), ValidationError )
0 commit comments