Skip to content

fix: retornar None em vez de string vazia quando padrão não encontrad…#202

Open
MuriloM676 wants to merge 1 commit intofazedordecodigo:developfrom
MuriloM676:fix/regex-return-none-issue-191
Open

fix: retornar None em vez de string vazia quando padrão não encontrad…#202
MuriloM676 wants to merge 1 commit intofazedordecodigo:developfrom
MuriloM676:fix/regex-return-none-issue-191

Conversation

@MuriloM676
Copy link
Copy Markdown

Descrição

Corrige o bug onde a função get_pattern() retornava uma string vazia ("") em vez de None quando um padrão de regex não era encontrado no dicionário REGEX_PATTERNS. Este comportamento causava validações falso-positivas, pois uma string vazia pode fazer match com certos padrões regex, quando deveria retornar None para indicar que o padrão não existe.

Mudanças Propostas

  • Alterado get_pattern() em flunt/localization/flunt_regex_patterns.py para retornar None quando padrão não existe
  • Atualizado tipo de retorno da função de str | Pattern[str] para str | Pattern[str] | None
  • Adicionado teste test_should_return_none_for_unknown_pattern para validar comportamento com padrão inexistente
  • Garante que validações falhem corretamente quando um padrão não está registrado, evitando falsos positivos

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.
  • Se feita a documentação, a atualização do arquivo em inglês.
  • 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.

Comentários Adicionais (opcional)

Este fix é importante para garantir a integridade das validações. O código existente que usa get_pattern() já está preparado para lidar corretamente com None, conforme verificado em:

  • email_validation_contract.py
  • credit_card_validation_contract.py
  • url_validation_contract.py

Todos esses arquivos já possuem verificações if pattern is None: nas funções helper com cache, então a mudança é totalmente retrocompatível e não quebra nenhuma funcionalidade existente.

Issue Relacionada

Closes #191

fazedordecodigo#191)

- Alterado get_pattern para retornar None quando padrão não existe
- Adicionado teste para validar comportamento com padrão inexistente
- Evita validações falso-positivas causadas por string vazia
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.

Bug Regex

1 participant