-
-
Notifications
You must be signed in to change notification settings - Fork 108
Description
Descrição do problema
Em arquivos onde a função is_valid() pede o argumento type (license_plate.py, phone.py), a lógica pede por strings específicas para o argumento. Em license_plate, 'type' pode ser old_format, mercosul ou None. Em phone.py, o valor pode ser 'landline' ou 'mobile'. Há uma lógica separada para cada valor, e uma lógica para o cenário em que o argumento não é fornecido (None).
No entanto, não há tratamento explícito para quando o 'type' fornecido é inválido. Se, por exemplo, o consumidor fornece o type com erro de digitação (ex: "mercosur" em vez de "mercosul"), a função trata o caso como None, onde a função verifica os dois comportamentos (um OU outro). Se o consumidor não percebe o erro de digitação e fornece uma placa de carro no formato 'old_format', a função retornaria True, podendo gerar confusão.
Acredito que deve haver um retorno diferente para quando um type inválido é fornecido, evitando enganos.
Para Reproduzir
Passos para reproduzir o comportamento:
- Chamar utilitário is_valid_license_plate
- Para license_plate, chamar
is_valid_license_plate('ABC1234', 'mercosu'). ABC1234 é uma placa no formato old_format, e "mercosu" é um erro de digitação para o type "mercosul". - Observar que a função retorna True. Isso acontece pois, quando o type não é exatamente "old_format" ou "mercosul" ele verifica ambos tipos, e retorna True se pelo menos um é válido. Com isso, o consumidor recebe True ao tentar prover o parâmetro "mercosul", visto que ABC1234 passa como um método válido de old_format.
PS: O mesmo comportamento ocorre com a função is_valid_phone, onde um type inválido faz com que a função verifique ambos types ('landline', 'mobile'), da mesma maneira que faz quando nenhum type é provido.
Comportamento esperado
A função deve retornar um valor diferente quando um type inválido é provido. Conversando com o mantenedor Nilton Pimentel (niltonpimentel02), concordamos em retornar None em um primeiro momento, mas ajustar o código posteriormente para retornar uma Exception que informe o problema com mais detalhes.
Desktop (por favor, forneça as seguintes informações):
- Sistema Operacional: macOS 15.7.1
Contexto adicional
N/A
💌 Quer contribuir, mas não se sente à vontade?
Você tem vontade de contribuir, mas não se sente à vontade em abrir issues, PRs ou fazer perguntas publicamente?
Nós sabemos como pode ser difícil dar o primeiro passo em um espaço aberto. A insegurança, o medo de errar ou até a sensação de “será que minha dúvida é boba?” podem pesar bastante. E tá tudo bem sentir isso. 💜
Queremos que você saiba que aqui ninguém precisa enfrentar esse caminho sem apoio. Se preferir um espaço mais reservado, você pode mandar um e-mail para cumbucadev@gmail.com e teremos o maior prazer em ajudar. Seja para tirar dúvidas, pedir orientação ou simplesmente ter alguém para conversar sobre como começar.
O importante é que você saiba: sua participação é muito bem-vinda, e cada contribuição, por menor que pareça, faz uma grande diferença. ✨
Metadata
Metadata
Assignees
Labels
Type
Projects
Status