alvarofpp / alvarofpp/validate-docbr

TituloEleitoral.validate() aceita identificador de UF inexistente

Offen
#82 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
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

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.