diff --git a/faker/providers/bank/cs_CZ/__init__.py b/faker/providers/bank/cs_CZ/__init__.py new file mode 100644 index 0000000000..7ea79ab21e --- /dev/null +++ b/faker/providers/bank/cs_CZ/__init__.py @@ -0,0 +1,11 @@ +from .. import Provider as BankProvider + + +class Provider(BankProvider): + """Implement bank provider for ``cs_CZ`` locale. + + https://www.mbank.cz/informace-k-produktum/info/ucty/cislo-uctu-iban.html + """ + + bban_format = "####################" + country_code = "CZ" diff --git a/tests/providers/test_bank.py b/tests/providers/test_bank.py index cf065af3ce..d373a4ced7 100644 --- a/tests/providers/test_bank.py +++ b/tests/providers/test_bank.py @@ -4,6 +4,7 @@ from faker.providers.bank import Provider as BankProvider from faker.providers.bank.az_AZ import Provider as AzAzBankProvider +from faker.providers.bank.cs_CZ import Provider as CsCZBankProvider from faker.providers.bank.de_CH import Provider as DeChBankProvider from faker.providers.bank.el_GR import Provider as ElGrBankProvider from faker.providers.bank.en_GB import Provider as EnGbBankProvider @@ -56,6 +57,21 @@ def test_bank(self, faker, num_samples): bank = faker.bank() assert bank in AzAzBankProvider.banks +class TestCsCz: + """Test cs_CZ bank provider""" + + def test_bban(self, faker, num_samples): + for _ in range(num_samples): + assert re.fullmatch(r"\d{20}", faker.bban()) + + def test_iban(self, faker, num_samples): + for _ in range(num_samples): + iban = faker.iban() + assert is_valid_iban(iban) + assert iban[:2] == CsCZBankProvider.country_code + assert re.fullmatch(r"\d{2}\d{20}", iban[2:]) + + class TestNoNo: """Test no_NO bank provider"""