Skip to content

fix: corrige is_valid_legal_process para retornar False em entradas malformadas - #794

Open
leopranzl wants to merge 2 commits into
brazilian-utils:mainfrom
leopranzl:793
Open

leopranzl wants to merge 2 commits into
brazilian-utils:mainfrom
leopranzl:793

Conversation

@leopranzl

Copy link
Copy Markdown

Descrição

is_valid_legal_process levantava ValueError quando o número limpo não tinha 20 dígitos ou continha letras, e aceitava como válido um número com dígitos não ASCII (ex.: "٠"). Este PR faz a função retornar False nesses casos, como os outros validadores da biblioteca.

Mudanças Propostas

  • Nova função interna _is_twenty_digits, que verifica se a string tem exatamente 20 dígitos ASCII (re.fullmatch(r"\d{20}", ..., flags=re.ASCII)). str.isdigit não basta porque aceita caracteres como "²" e "٣".
  • is_valid_legal_process retorna False para entradas que não são string e para strings que, sem os símbolos, não têm 20 dígitos ASCII, antes de converter os campos com int().
  • format_legal_process usa a mesma verificação e retorna None para dígitos não ASCII.
  • Testes de regressão: números truncados (campos TR e OOOO vazios), letras, dígitos não ASCII e entradas que não são string. Os dois testes novos falham na main e passam com a correção.

Checklist de Revisão

  • Eu li o Contributing.md
  • Os testes foram adicionados ou atualizados para refletir as mudanças (se aplicável).
  • Foi adicionada uma entrada no changelog / Meu PR não necessita de uma nova entrada no changelog.
  • A documentação em português foi atualizada ou criada, se necessário. (Não necessário: o comportamento documentado não muda.)
  • Se feita a documentação, a atualização do arquivo em inglês. (Não necessário.)
  • Eu documentei as minhas mudanças no código, adicionando docstrings e comentários. Instruções
  • O código segue as diretrizes de estilo e padrões de codificação do projeto.
  • Todos os testes passam. Instruções
  • O Pull Request foi testado localmente. Instruções
  • Não há conflitos de mesclagem.

Declaração de Uso de IA (OBRIGATÓRIA)

  • Nenhuma ferramenta de IA foi utilizada na preparação deste PR.
  • Se ferramentas de IA foram utilizadas, eu informei quais foram e revisei e verifiquei completamente os resultados gerados.

Usei o Claude Code (Anthropic) para investigar o bug, escrever a correção e os testes. Revisei o diff e conferi os resultados: python -m unittest discover tests (178 testes passando), ruff format --check . e ruff check . com a versão do pyproject.toml.

Comentários Adicionais (opcional)

O PR #743 tratava parte disso, mas foi fechado sem issue associada; este segue o fluxo do CONTRIBUTING, com issue atribuída.

Issue Relacionada

Closes #793

🤖 Generated with Claude Code

leopranzl and others added 2 commits October 20, 2026 16:37
is_valid_legal_process levantava ValueError quando o número limpo não
tinha 20 dígitos ou continha letras, porque os campos TR e OOOO eram
convertidos com int() sem validação prévia. Também aceitava como válido
um número com dígitos não ASCII, como "٠", que str.isdigit e int aceitam.

Agora a função retorna False para qualquer entrada que não seja uma
string com exatamente 20 dígitos ASCII depois de remover os símbolos.
format_legal_process passa a usar a mesma verificação e retorna None
para dígitos não ASCII.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@leopranzl
leopranzl requested review from a team as code owners October 21, 2026 15:34
Copilot AI balanced review requested due to automatic review settings October 21, 2026 15:34

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@codecov

codecov Bot commented Oct 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.10%. Comparing base (b08c9f0) to head (604afa3).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #794   +/-   ##
=======================================
  Coverage   99.09%   99.10%           
=======================================
  Files          26       26           
  Lines         775      781    +6     
=======================================
+ Hits          768      774    +6     
  Misses          7        7           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@coderabbitai

coderabbitai Bot commented Oct 21, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 37ce6fc3-8cb7-4b6f-a552-27a3340e4c49

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@leopranzl leopranzl changed the title Corrige is_valid_legal_process para retornar False em entradas malformadas fix: corrige is_valid_legal_process para retornar False em entradas malformadas Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

2 participants