Pessoal, bom dia. Help!
Ao testar o código, removi os dois últimos dígitos do cpf que havia inserido, e por algum motivo, os dois últimos dígitos remanescentes foram duplicados e o cpf validado! Como isso aconteceu? Segue abaixo o arquivo main.py:
from cpf_cnpj import CpfCnpj
from validate_docbr import CNPJ
# cpf_um = Cpf("02942023740")
# print(cpf_um)
exemplo_cnpj = "04422276000119"
exemplo_cpf = "216142000"
# cnpj = CNPJ()
# print(cnpj.validate(exemplo_cnpj))
documento = CpfCnpj(exemplo_cpf, 'cpf')
print(documento)
E segue o cpf_cnpj.py:
from validate_docbr import CPF, CNPJ
class CpfCnpj:
def __init__(self, documento, tipo_documento):
self.tipo_documento = tipo_documento
documento = str(documento)
if tipo_documento == "cpf":
if self.cpf_eh_Valido(documento):
self.cpf = documento
else:
raise ValueError("CPF inválido!!")
elif self.tipo_documento == "cnpj":
if self.cnpj_eh_valido(documento):
self.cnpj = documento
else:
raise ValueError("CNPJ inválido!!")
else:
raise ValueError("Documento inválido!!")
def cpf_eh_Valido(self, cpf):
if len(cpf) == 11:
validador = CPF()
return validador.validate(cpf)
else:
return ValueError("Quantidade de dígitos inválida!!")
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 self.format_cpf()
elif self.tipo_documento == "cnpj":
return self.format_cnpj()
def cnpj_eh_valido(self, cnpj):
if len(cnpj) == 14:
validate_cnpj = CNPJ() # instanciando a classe
return validate_cnpj.validate(cnpj)
else:
raise ValueError("Quantidade de dígitos inválida!!")
Agradeço desde já pela ajuda!