diff --git a/README.md b/README.md index f1c26c6b..807b7e80 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,8 @@ False - [remove_symbols_cnpj](#remove_symbols_cnpj) - [generate_cnpj](#generate_cnpj) - [CEP](#cep) - - [is_valid_cep](#is_valid_cep) + - [is_valid_cep](#is_valid_cep) + - [generate_cep](#generate_cep) ## CPF @@ -142,6 +143,17 @@ Verifica se o CEP é valido. Apenas números, formatados como string. Não verif True ``` +### generate_cep + +Gera um CEP válido aleatório. + +```python +>>> from brutils import generate_cep +>>> generate_cep() +'77520503' +``` + + ## Contributing Sua colaboração é sempre bem-vinda! Preparamos o [arquivo contributing][contributing] pra te ajudar nos primeiros passos. Toda ajuda conta! Sinta-se livre para criar novas [GitHub issues][github-issues] e interagir aqui. diff --git a/README_EN.md b/README_EN.md index 43334e84..d4619437 100644 --- a/README_EN.md +++ b/README_EN.md @@ -46,6 +46,7 @@ False - [generate_cnpj](#generate_cnpj) - [CEP](#cep) - [is_valid_cep](#is_valid_cep) + - [generate_cep](#generate_cep) ## CPF @@ -147,6 +148,16 @@ Check if CEP is valid. Numbers only, formatted as strings. Does not check if CEP True ``` +### generate_cep + +Generate a valid random CEP. + +```python +>>> from brutils import generate_cep +>>> generate_cep() +'77520503' +``` + ## Contributing Collaboration is super welcome! We prepared the [contributing file][contributing] to help you in the first steps. Every little bit of help counts! Feel free to create new [GitHub issues][github-issues] and interact here. diff --git a/brutils/__init__.py b/brutils/__init__.py index e5d69ce0..e2f1aeec 100644 --- a/brutils/__init__.py +++ b/brutils/__init__.py @@ -12,4 +12,5 @@ ) from brutils.cep import ( is_valid as is_valid_cep, + generate as generate_cep, ) diff --git a/brutils/cep.py b/brutils/cep.py index 1c49718a..0b170127 100644 --- a/brutils/cep.py +++ b/brutils/cep.py @@ -20,3 +20,16 @@ def is_valid(cep): # type: (str) -> bool """ return isinstance(cep, str) and len(cep) == 8 and cep.isdigit() + + +def generate(): # type: () -> str + """ + Generates a random valid CEP digit string. An optional branch + number parameter can be given, it defaults to 1. + """ + generated_number = "" + + for _ in range(0, 8): + generated_number = generated_number + str(randint(0, 9)) + + return generated_number diff --git a/tests/test_cep.py b/tests/test_cep.py index b3d18e65..e023061d 100644 --- a/tests/test_cep.py +++ b/tests/test_cep.py @@ -11,6 +11,7 @@ ) from brutils.cep import ( is_valid, + generate, ) from unittest import TestCase, main @@ -29,3 +30,8 @@ def test_is_valid(self): # When CEP is valid assert is_valid("99999999") assert is_valid("88390000") + + def test_generate(self): + for _ in range(10_000): + assert is_valid(generate()) + # assert format(generate()) is not None