Skip to content

Commit 770ee47

Browse files
test(card): add Mir card validation tests
1 parent 3c2398f commit 770ee47

File tree

1 file changed

+26
-8
lines changed

1 file changed

+26
-8
lines changed

tests/test_card.py

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
mastercard,
1515
unionpay,
1616
visa,
17+
mir
1718
)
1819

1920
visa_cards = ["4242424242424242", "4000002760003184"]
@@ -23,6 +24,7 @@
2324
diners_cards = ["3056930009020004", "36227206271667"]
2425
jcb_cards = ["3566002020360505"]
2526
discover_cards = ["6011111111111117", "6011000990139424"]
27+
mir_cards = ["2200123456789012", "2204987654321098"]
2628

2729

2830
@pytest.mark.parametrize(
@@ -33,14 +35,15 @@
3335
+ unionpay_cards
3436
+ diners_cards
3537
+ jcb_cards
36-
+ discover_cards,
38+
+ discover_cards
39+
+ mir_cards,
3740
)
3841
def test_returns_true_on_valid_card_number(value: str):
3942
"""Test returns true on valid card number."""
4043
assert card_number(value)
4144

4245

43-
@pytest.mark.parametrize("value", ["4242424242424240", "4000002760003180", "400000276000318X"])
46+
@pytest.mark.parametrize("value", ["4242424242424240", "4000002760003180", "400000276000318X", "220012345678901X"])
4447
def test_returns_failed_on_valid_card_number(value: str):
4548
"""Test returns failed on valid card number."""
4649
assert isinstance(card_number(value), ValidationError)
@@ -69,7 +72,7 @@ def test_returns_true_on_valid_mastercard(value: str):
6972

7073
@pytest.mark.parametrize(
7174
"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,
7376
)
7477
def test_returns_failed_on_valid_mastercard(value: str):
7578
"""Test returns failed on valid mastercard."""
@@ -84,7 +87,7 @@ def test_returns_true_on_valid_amex(value: str):
8487

8588
@pytest.mark.parametrize(
8689
"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,
8891
)
8992
def test_returns_failed_on_valid_amex(value: str):
9093
"""Test returns failed on valid amex."""
@@ -99,7 +102,7 @@ def test_returns_true_on_valid_unionpay(value: str):
99102

100103
@pytest.mark.parametrize(
101104
"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,
103106
)
104107
def test_returns_failed_on_valid_unionpay(value: str):
105108
"""Test returns failed on valid unionpay."""
@@ -114,7 +117,7 @@ def test_returns_true_on_valid_diners(value: str):
114117

115118
@pytest.mark.parametrize(
116119
"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,
118121
)
119122
def test_returns_failed_on_valid_diners(value: str):
120123
"""Test returns failed on valid diners."""
@@ -129,7 +132,7 @@ def test_returns_true_on_valid_jcb(value: str):
129132

130133
@pytest.mark.parametrize(
131134
"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,
133136
)
134137
def test_returns_failed_on_valid_jcb(value: str):
135138
"""Test returns failed on valid jcb."""
@@ -144,8 +147,23 @@ def test_returns_true_on_valid_discover(value: str):
144147

145148
@pytest.mark.parametrize(
146149
"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,
148151
)
149152
def test_returns_failed_on_valid_discover(value: str):
150153
"""Test returns failed on valid discover."""
151154
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

Comments
 (0)