alvarofpp / alvarofpp/validate-docbr

TituloEleitoral.validate() aceita identificador de UF inexistente

Open
#82 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
484
Forks
54
PR merge metrics
No merged PRs in 30d

Description

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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.