1414 mastercard ,
1515 unionpay ,
1616 visa ,
17+ mir
1718)
1819
1920visa_cards = ["4242424242424242" , "4000002760003184" ]
2324diners_cards = ["3056930009020004" , "36227206271667" ]
2425jcb_cards = ["3566002020360505" ]
2526discover_cards = ["6011111111111117" , "6011000990139424" ]
27+ mir_cards = ["2200123456789012" , "2204987654321098" ]
2628
2729
2830@pytest .mark .parametrize (
3335 + unionpay_cards
3436 + diners_cards
3537 + jcb_cards
36- + discover_cards ,
38+ + discover_cards
39+ + mir_cards ,
3740)
3841def 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" ])
4447def 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)
7477def 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)
8992def 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)
104107def 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)
119122def 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)
134137def 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)
149152def 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