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

meu codigo diz que a quantidade de caracteres(da cnpj) é invalidos mesmo quando tem 14 elementos

o cpf esta dando certo, mas a cnpj da erro mesmo quando o numero de caracteres é 14 estou usando a cnpj = 46257910000155

from validate_docbr import CPF, CNPJ


class CpfCnpj:
    def __init__(self, documento, tipo_documento):
        documento = str(documento)
        self.tipo_documento = tipo_documento
        if tipo_documento == 'cpf':
            if self.cpf_eh_valido(documento):
                self.cpf = documento
            else:
                raise ValueError('CPF inválido!!!')
        elif tipo_documento == 'cnpj':
            if self.cpf_eh_valido(documento):
                self.cnpj = documento
            else:
                raise ValueError('CPF inválido!!!')
        else:
            raise ValueError ('documento invalido!!!')

    def cpf_eh_valido(self,documento):
        if len(documento) == 11:
            validador = CPF()
            return validador.validate(documento)
        else:
            raise ValueError('quantidade de digitos invalida!!!')

    def format_cpf(self):
        mascara = CPF()
        return mascara.mask(self.cpf)

    def format_cnpj(self):
        mascara = CNPJ()
        return mascara.mask(self.cnpj)

    def __str__(self):
        if self.tipo_documento == 'cpf':
            return f'seu cpf é {self.format_cpf()}'
        elif self.tipo_documento == 'cnpj':
            return f'sua cnpj é {self.format_cnpj()}'

    def cnpj_eh_Valido(self, documento):
        if len(documento) == 14:
            validador = CNPJ()
            return validador.validate(documento)
        else:
            raise ValueError("Quantidade de dígitos inválida!")
1 resposta
solução!

Bom dia Marcos, tudo bem?

seu código quando faz a verificação de cnpj está chamando a função cpf_eh_valido

        elif tipo_documento == 'cnpj':
            if self.cpf_eh_valido(documento):
                self.cnpj = documento
            else:
                raise ValueError('CPF inválido!!!')

tente alterar para

        elif tipo_documento == 'cnpj':
            if self.cnpj_eh_Valido(documento):
                self.cnpj = documento
            else:
                raise ValueError('CNPJ inválido!!!')

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software