12
12
discover,
13
13
jcb,
14
14
mastercard,
15
+ mir,
15
16
unionpay,
16
17
visa,
17
18
)
23
24
diners_cards = ["3056930009020004", "36227206271667"]
24
25
jcb_cards = ["3566002020360505"]
25
26
discover_cards = ["6011111111111117", "6011000990139424"]
27
+ mir_cards = ["2200123456789019", "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(
47
+ "value",
48
+ [
49
+ "4242424242424240",
50
+ "4000002760003180",
51
+ "400000276000318X",
52
+ "220012345678901X",
53
+ ],
54
+ )
44
55
def test_returns_failed_on_valid_card_number(value: str):
45
56
"""Test returns failed on valid card number."""
46
57
assert isinstance(card_number(value), ValidationError)
@@ -84,7 +95,13 @@ def test_returns_true_on_valid_amex(value: str):
84
95
85
96
@pytest.mark.parametrize(
86
97
"value",
87
- visa_cards + mastercard_cards + unionpay_cards + diners_cards + jcb_cards + discover_cards,
98
+ visa_cards
99
+ + mastercard_cards
100
+ + unionpay_cards
101
+ + diners_cards
102
+ + jcb_cards
103
+ + discover_cards
104
+ + mir_cards,
88
105
)
89
106
def test_returns_failed_on_valid_amex(value: str):
90
107
"""Test returns failed on valid amex."""
@@ -99,7 +116,13 @@ def test_returns_true_on_valid_unionpay(value: str):
99
116
100
117
@pytest.mark.parametrize(
101
118
"value",
102
- visa_cards + mastercard_cards + amex_cards + diners_cards + jcb_cards + discover_cards,
119
+ visa_cards
120
+ + mastercard_cards
121
+ + amex_cards
122
+ + diners_cards
123
+ + jcb_cards
124
+ + discover_cards
125
+ + mir_cards,
103
126
)
104
127
def test_returns_failed_on_valid_unionpay(value: str):
105
128
"""Test returns failed on valid unionpay."""
@@ -114,7 +137,13 @@ def test_returns_true_on_valid_diners(value: str):
114
137
115
138
@pytest.mark.parametrize(
116
139
"value",
117
- visa_cards + mastercard_cards + amex_cards + unionpay_cards + jcb_cards + discover_cards,
140
+ visa_cards
141
+ + mastercard_cards
142
+ + amex_cards
143
+ + unionpay_cards
144
+ + jcb_cards
145
+ + discover_cards
146
+ + mir_cards,
118
147
)
119
148
def test_returns_failed_on_valid_diners(value: str):
120
149
"""Test returns failed on valid diners."""
@@ -129,7 +158,13 @@ def test_returns_true_on_valid_jcb(value: str):
129
158
130
159
@pytest.mark.parametrize(
131
160
"value",
132
- visa_cards + mastercard_cards + amex_cards + unionpay_cards + diners_cards + discover_cards,
161
+ visa_cards
162
+ + mastercard_cards
163
+ + amex_cards
164
+ + unionpay_cards
165
+ + diners_cards
166
+ + discover_cards
167
+ + mir_cards,
133
168
)
134
169
def test_returns_failed_on_valid_jcb(value: str):
135
170
"""Test returns failed on valid jcb."""
@@ -144,8 +179,35 @@ def test_returns_true_on_valid_discover(value: str):
144
179
145
180
@pytest.mark.parametrize(
146
181
"value",
147
- visa_cards + mastercard_cards + amex_cards + unionpay_cards + diners_cards + jcb_cards,
182
+ visa_cards
183
+ + mastercard_cards
184
+ + amex_cards
185
+ + unionpay_cards
186
+ + diners_cards
187
+ + jcb_cards
188
+ + mir_cards,
148
189
)
149
190
def test_returns_failed_on_valid_discover(value: str):
150
191
"""Test returns failed on valid discover."""
151
192
assert isinstance(discover(value), ValidationError)
193
+
194
+
195
+ @pytest.mark.parametrize("value", mir_cards)
196
+ def test_returns_true_on_valid_mir(value: str):
197
+ """Test returns true on valid Mir card."""
198
+ assert mir(value)
199
+
200
+
201
+ @pytest.mark.parametrize(
202
+ "value",
203
+ visa_cards
204
+ + mastercard_cards
205
+ + amex_cards
206
+ + unionpay_cards
207
+ + diners_cards
208
+ + jcb_cards
209
+ + discover_cards,
210
+ )
211
+ def test_returns_failed_on_valid_mir(value: str):
212
+ """Test returns failed on invalid Mir card (other payment systems)."""
213
+ assert isinstance(mir(value), ValidationError)
0 commit comments