alvarofpp / alvarofpp/validate-docbr

TituloEleitoral.validate() aceita identificador de UF inexistente

Abierto
#82 0 comentarios 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
Python
Estrellas
484
Forks
54
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

`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.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.