Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Validação não esta ocorrendo com quantidade inferior ou superior de caracteres

Na aula anterior estava tendo dificuldade com a execução do pacote validate_docbr, dei continuidade e estou me deparando com erros na validação, tanto com quantidade superior quanto inferior de caracteres.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Segue código, abaixo:

from validate_docbr import CPF

class Cpf:
    def __init__(self, documento):
        documento = str(documento)
        if self.cpf_eh_valido(documento):
            self.cpf = documento
        else:
            raise ValueError('\033[1;35mCPF inválido, necessário conter 11 digítos!!!\033[m')

    def cpf_eh_valido(self, cpf):
        if len(cpf) == 11:
            validador = CPF()
            return validador.validate(cpf)
        else:
            return ValueError(f'\033[1;35Quantidade de dígitos inválido!!!\033[m')

    # Feauteres colocando a máscara na impressão do cpf
    def format_cpf(self):
        mascara = CPF()
        return mascara.mask(self.cpf)

    def __str__(self):
        return self.format_cpf()
1 resposta
solução!

Bom dia, Robson!

Notei que na função def cpf_eh_valido(self, cpf) do seu código está com um return na hora de lançar o erro. Tente mudar para raise para ver se dá certo:

def cpf_eh_valido(self, cpf):
        if len(cpf) == 11:
            validador = CPF()
            return validador.validate(cpf)
        else:
            raise ValueError(f'\033[1;35Quantidade de dígitos inválido!!!\033[m')

Espero ter ajudado :) Se deu certo marque o tópico como resvolvido para eu saber, por gentileza :D