Skip to content

is_valid_legal_process levanta ValueError para entradas malformadas e aceita dígitos não ASCII #793

Open

Description

@leopranzl

Descrição do problema
is_valid_legal_process deveria retornar True ou False, mas levanta ValueError quando o número, depois de remover . e -, não tem 20 dígitos ou contém letras. Isso acontece porque os campos TR (posições 14-16) e OOOO (16-20) são convertidos com int() sem validação antes.

Além disso, a função aceita como válido um número com dígitos não ASCII. str.isdigit e int aceitam, por exemplo, o dígito árabe "٠", então um número real com o último zero trocado por "٠" passa na validação.

Para Reproduzir

from brutils import is_valid_legal_process

is_valid_legal_process("5046512-94.2016.4.04.7000")  # True (número real)

is_valid_legal_process("50465129420164")        # ValueError: invalid literal for int() with base 10: ''
is_valid_legal_process("5046512942016404")      # ValueError: invalid literal for int() with base 10: ''
is_valid_legal_process("ABCDEFG9420164047000")  # ValueError: invalid literal for int() with base 10: 'ABCDEFG20164047000'
is_valid_legal_process("5046512942016404700٠")  # True, mas o último caractere não é um dígito ASCII

Comportamento esperado
Retornar False para qualquer entrada que não seja uma string com exatamente 20 dígitos ASCII após a remoção dos símbolos, como já acontece com is_valid_cpf e is_valid_cnpj para entradas inválidas.

format_legal_process tem o mesmo problema com dígitos não ASCII: format_legal_process("²" * 20) retorna uma string formatada em vez de None.

Desktop:

  • Sistema Operacional: Linux
  • Versão do brutils: 2.5.0 (também reproduzido na main, commit b08c9f0)

Contexto adicional
O PR #743 tratava parte disso, mas foi fechado sem issue associada. Tenho a correção pronta, com testes, e posso abrir o PR se a issue for atribuída a mim.

Activity

  1. leopranzl commented on Oct 21, 2026

    @leopranzl
    Author

    bora!

  2. github-actions commented on Oct 21, 2026

    @github-actions

    🇧🇷 Português
    ✅ Issue #793 atribuída a @leopranzl. Verifique o guia de contribuição para instruções sobre como submeter sua Pull Request.

    🇬🇧 English
    ✅ Issue #793 assigned to @leopranzl. Check the contributing guide for instructions on submitting your Pull Request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions