alvarofpp / alvarofpp/validate-docbr
TituloEleitoral.validate() aceita identificador de UF inexistente
- Vorherrschende Sprache
- Python
- Sterne
- 484
- Forks
- 54
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
`TituloEleitoral.validate()` confere apenas o tamanho (12 dígitos) e os dois dígitos verificadores. O identificador de UF (9º e 10º dígitos) não é validado, então qualquer par de dígitos passa — inclusive `00`, `29` e `99`, que não existem na tabela da [Resolução TSE 23.659/2021, Art. 36](https://www.tse.jus.br/legislacao/compilada/res/2021/resolucao-no-23-659-de-26-de-outubro-de-2021) (UFs válidas: `01` a `28`).
## Como reproduzir
```python
from validate_docbr import TituloEleitoral
t = TituloEleitoral()
t.validate('100000010000') # UF 00 -> True
t.validate('100000012909') # UF 29 -> True
t.validate('100000019903') # UF 99 -> True
```
Os três têm dígitos verificadores corretos, mas a UF é inexistente.
## Solução proposta
Rejeitar em `validate()` documento cujo identificador de UF esteja fora de `01`–`28`.
## Atenção: mudança incompatível
A correção rejeita entrada que hoje é aceita, então é *breaking change* — precisa entrar em release major (ou ficar atrás de um parâmetro opcional, a definir).
Encontrado durante a apuração da #70. Relacionado com a #81.
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.