From 72d6eea38030513554a0a7f78293a6fed246472f Mon Sep 17 00:00:00 2001 From: Camila Maia Date: Fri, 7 Jun 2024 17:22:22 +0200 Subject: [PATCH] Apply suggestions from code review --- CHANGELOG.md | 3 --- README.md | 29 ++--------------------------- README_EN.md | 29 +---------------------------- brutils/voter_id.py | 20 ++++++++++---------- tests/test_voter_id.py | 6 ++---- 5 files changed, 15 insertions(+), 72 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3137de0..3414e1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Utilitário `format_pis` [#224](https://github.com/brazilian-utils/brutils-python/pull/224) - Utilitário `format_legal_process` [#210](https://github.com/brazilian-utils/brutils-python/pull/210) - Utilitário `generate_license_plate` [#241](https://github.com/brazilian-utils/brutils-python/pull/241) -<<<<<<< HEAD - Utilitário `generate_phone` [#295](https://github.com/brazilian-utils/brutils-python/pull/295) - Utilitário `generate_pis` [#218](https://github.com/brazilian-utils/brutils-python/pull/218) - Utilitário `generate_legal_process` [#208](https://github.com/brazilian-utils/brutils-python/pull/208) @@ -44,8 +43,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Utilitário `remove_symbols_phone` [#188](https://github.com/brazilian-utils/brutils-python/pull/188) - Utilitário `remove_symbols_pis` [#236](https://github.com/brazilian-utils/brutils-python/pull/236) - Utilitário `remove_symbols_legal_process` [#209](https://github.com/brazilian-utils/brutils-python/pull/209) -======= ->>>>>>> 6e22034d1f9918376b786c463e9974c6d2f4da2b - Utilitário `generate_titulo_eleitoral` [#220](https://github.com/brazilian-utils/brutils-python/pull/220) ### Removed diff --git a/README.md b/README.md index aa67a91..0e186a0 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,6 @@ False - [remove_symbols_pis](#remove_symbols_pis) - [generate_pis](#generate_pis) - [Processo Jurídico](#processo-jurídico) -<<<<<<< HEAD - [is_valid_legal_process](#is_valid_legal_process) - [format_legal_process](#format_legal_process) - [remove_symbols_legal_process](#remove_symbols_legal_process) @@ -87,15 +86,7 @@ False - [Título Eleitoral](#titulo-eleitoral) - [is_valid_voter_id](#is_valid_voter_id) -======= - - [format_processo_juridico](#format_processo_juridico) - - [remove\_symbols\_processo\_juridico](#remove_symbols_processo_juridico) - - [generate_processo_juridico](#generate_processo_juridico) - - [is_valid_processo_juridico](#is_valid_processo_juridico) -- [Título ELeitoral](#título-eleitoral) - - [generate_titulo_eleitoral](#generate_titulo_eleitoral) - ->>>>>>> 6e22034d1f9918376b786c463e9974c6d2f4da2b + - [generate_voter_id](#generate_voter_id) ## CPF @@ -909,7 +900,7 @@ True ### generate_voter_id -Gerar uma string de dígitos de Título de Eleitor válida aleatória a partir de um estado brasileiro informado. +Gera uma string de dígitos de Título de Eleitor válida aleatória a partir de um estado brasileiro informado. Retorna: * str: Um Título de eleitor válido gerado aleatoriamente. @@ -925,22 +916,6 @@ Exemplo: ``` -<<<<<<< HEAD -======= -## Título eleitoral - -### generate_titulo_eleitoral - -Gera um número de título eleitoral válido aleatório dado uma unidade federativa. Por padrão o título é emitido fora do Brasil, caso a unidade federativa não seja inforamda. - -```python ->>> from brutils import generate_titulo_eleitoral ->>> generate_titulo_eleitoral(state='MG') -'744770710280' -``` - - ->>>>>>> 6e22034d1f9918376b786c463e9974c6d2f4da2b # Novos Utilitários e Reportar Bugs Caso queira sugerir novas funcionalidades ou reportar bugs, basta criar diff --git a/README_EN.md b/README_EN.md index e44f768..ef52700 100644 --- a/README_EN.md +++ b/README_EN.md @@ -77,7 +77,6 @@ False - [remove_symbols_pis](#remove_symbols_pis) - [generate_pis](#generate_pis) - [Legal Process](#legal-process) -<<<<<<< HEAD - [is_valid_legal_process](#is_valid_legal_process) - [format_legal_process](#format_legal_process) - [remove_symbols_legal_process](#remove_symbols_legal_process) @@ -85,14 +84,7 @@ False - [Voter ID](#voter-id) - [is_valid_voter_id](#is_valid_voter_id) -======= - - [format_processo_juridico](#format_processo_juridico) - - [remove\_symbols\_processo\_juridico](#remove_symbols_processo_juridico) - - [generate_processo_juridico](#generate_processo_juridico) - - [is_valid_processo_juridico](#is_valid_processo_juridico) -- [Título ELeitoral](#título-eleitoral) - - [generate_titulo_eleitoral](#generate_titulo_eleitoral) ->>>>>>> 6e22034d1f9918376b786c463e9974c6d2f4da2b + - [generate_voter_id](#generate_voter_id) ## CPF @@ -886,7 +878,6 @@ Example: >>> generate_legal_process(year=2024, orgao=4) "33158248820244017105" ``` -<<<<<<< HEAD ## Voter ID @@ -898,9 +889,6 @@ It does not verify if the voter id actually exists. References: - https://pt.wikipedia.org/wiki/T%C3%ADtulo_de_eleitor, - http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-titulo-de-eleitor/ -======= -## is_valid_processo_juridico ->>>>>>> 6e22034d1f9918376b786c463e9974c6d2f4da2b Args: * voter_id(str): string representing the voter id to be verified. @@ -938,21 +926,6 @@ Example: '950125640248' ``` - - -## Voter registration - -### generate_titulo_eleitoral - -Generate a valid random voter registration number given a federative unit. The argument has default value (foreigner) if the federative unit is not informed. - -```python ->>> from brutils import generate_titulo_eleitoral ->>> generate_titulo_eleitoral(state='MG') -'744770710280' -``` - - # Feature Request and Bug Report If you want to suggest new features or report bugs, simply create diff --git a/brutils/voter_id.py b/brutils/voter_id.py index 7e0ea5b..d2be3d4 100644 --- a/brutils/voter_id.py +++ b/brutils/voter_id.py @@ -207,7 +207,7 @@ def _calculate_vd2(federative_union, vd1): # type: (str, int) -> str if federative_union in ["01", "02"] and rest == 0: vd2 = 1 - # edge case: rest == 10, declare vd1 as zero + # edge case: rest == 10, declare vd2 as zero if rest == 10: vd2 = 0 @@ -219,10 +219,10 @@ def generate(state="ZZ") -> str: Generates a random valid Brazilian voter registration. Args: - Federative unit[str] + federative_union(str): federative union for the voter id that will be generated. The default value "ZZ" is used for voter IDs issued to foreigners. Returns: - value[str]: Brazilian voter registration. + str: A randomly generated valid voter ID for the given federative union """ UFs = { "SP": "01", @@ -255,11 +255,11 @@ def generate(state="ZZ") -> str: "ZZ": "28", } - state = state.upper() - if state in (UFs): + federative_union = federative_union.upper() + if federative_union in (UFs): sequential_number = str(randint(0, 99999999)).zfill(8) - federative_union = UFs[state] - if _is_federative_union_valid(federative_union): - vd1 = _calculate_vd1(sequential_number, federative_union) - vd2 = _calculate_vd2(federative_union, vd1) - return f"{sequential_number}{federative_union}{vd1}{vd2}" + uf_number = UFs[federative_union] + if _is_uf_number_valid(uf_number): + vd1 = _calculate_vd1(sequential_number, uf_number) + vd2 = _calculate_vd2(uf_number, vd1) + return f"{sequential_number}{uf_number}{vd1}{vd2}" diff --git a/tests/test_voter_id.py b/tests/test_voter_id.py index ce1ee2a..ed7be32 100644 --- a/tests/test_voter_id.py +++ b/tests/test_voter_id.py @@ -80,6 +80,8 @@ def test_calculate_vd1(self): self.assertIs(_calculate_vd1("73146415", "03"), 0) def test_calculate_vd2(self): + self.assertIs(_calculate_vd2("02", 7), 2) + # edge case: if rest == 10, declare vd2 as zero self.assertIs(_calculate_vd2("03", 7), 0) # edge case: if UF is "01" (for SP) and rest == 0 # declare dv2 as 1 instead @@ -91,22 +93,18 @@ def test_calculate_vd2(self): def test_generate_voter_id(self): # test if is_valid a voter id from MG voter_id = generate(state="MG") - self.assertIs(is_valid(voter_id), True) # test if is_valid a voter id from AC voter_id = generate(state="AC") - self.assertIs(is_valid(voter_id), True) # test if is_valid a voter id from foreigner voter_id = generate() - self.assertIs(is_valid(voter_id), True) # test if UF is not valid voter_id = generate(state="XX") - self.assertIs(is_valid(voter_id), False)