def test_deve_adicionar_erro_para_atributos_faltando(self): validador = cadastro.BoletoValidador(valor={'sem_atributos': 1}, valores={}) validador.eh_valido.should.be.equal(False) validador.erros.should.contain('atributos') validador.erros['atributos'].should.contain(u"Não foi enviado o atributo empresa_beneficiario no boleto {'sem_atributos': 1}") validador.erros['atributos'].should.contain(u"Não foi enviado o atributo empresa_cnpj no boleto {'sem_atributos': 1}") validador.erros['atributos'].should.contain(u"Não foi enviado o atributo empresa_estado no boleto {'sem_atributos': 1}") validador.erros['atributos'].should.contain(u"Não foi enviado o atributo empresa_endereco no boleto {'sem_atributos': 1}") validador.erros['atributos'].should.contain(u"Não foi enviado o atributo empresa_cidade no boleto {'sem_atributos': 1}") validador.erros['atributos'].should.contain(u"Não foi enviado o atributo banco no boleto {'sem_atributos': 1}") validador.erros['atributos'].should.contain(u"Não foi enviado o atributo carteira no boleto {'sem_atributos': 1}") validador.erros['atributos'].should.contain(u"Não foi enviado o atributo dias_vencimento no boleto {'sem_atributos': 1}") validador.erros['atributos'].should.contain(u"Não foi enviado o atributo banco_agencia no boleto {'sem_atributos': 1}") validador.erros['atributos'].should.contain(u"Não foi enviado o atributo banco_conta no boleto {'sem_atributos': 1}") validador.erros['atributos'].should.contain(u"Não foi enviado o atributo banco_convenio no boleto {'sem_atributos': 1}") validador.erros['atributos'].should.contain(u"Não foi enviado o atributo linha_1 no boleto {'sem_atributos': 1}") validador.erros['atributos'].should.contain(u"Não foi enviado o atributo linha_2 no boleto {'sem_atributos': 1}") validador.erros['atributos'].should.contain(u"Não foi enviado o atributo linha_3 no boleto {'sem_atributos': 1}")
def test_cnpj_soh_pode_ter_digitos(self): boleto = { 'empresa_beneficiario': None, 'empresa_cnpj': '1233d44', 'empresa_estado': None, 'empresa_endereco': None, 'empresa_cidade': None, 'dias_vencimento': 2, 'banco': None, 'carteira': None, 'banco_agencia': None, 'banco_conta': None, 'banco_convenio': None, 'linha_1': None, 'linha_2': None, 'linha_3': None, } validador = cadastro.BoletoValidador(valor=boleto, valores={}) validador.eh_valido.should.be.equal(False) validador.erros.should.be.equal({'empresa_cnpj': u'CPF/CNPJ inválido. Deve ter 14 digitos para CNPJ ou 11 para CPF'})
def test_banco_hsbc_deve_ter_conta_com_5_digitos(self): boleto = { 'empresa_beneficiario': None, 'empresa_cnpj': None, 'empresa_estado': None, 'empresa_endereco': None, 'empresa_cidade': None, 'dias_vencimento': 2, 'banco': BANCOS['399'], 'carteira': None, 'banco_agencia': None, 'banco_conta': '1234', 'banco_convenio': None, 'linha_1': None, 'linha_2': None, 'linha_3': None, } validador = cadastro.BoletoValidador(valor=boleto, valores={}) validador.eh_valido.should.be.equal(False) validador.erros.should.be.equal({'banco_conta': u'Certifique-se de que o valor tenha 5 caracteres (ele possui 4).'})
def test_retorna_ok_com_tudo_preenchido(self): boleto = { 'empresa_beneficiario': 'Nome Beneficiario', 'empresa_cnpj': '12345678901', 'empresa_estado': 'RJ', 'empresa_endereco': 'Endereco', 'empresa_cidade': 'Cidade', 'dias_vencimento': 2, 'banco': '341', 'carteira': '18', 'banco_agencia': '1234', 'banco_conta': '12345', 'banco_convenio': None, 'linha_1': 'Linha 1', 'linha_2': 'Linha 2', 'linha_3': 'Linha 3', } validador = cadastro.BoletoValidador(valor=boleto, valores={}) validador.eh_valido.should.be.equal(True) validador.erros.should.be.empty
def test_banco_convenio_hsbc_deve_ter_7_digitos(self): boleto = { 'empresa_beneficiario': None, 'empresa_cnpj': None, 'empresa_estado': None, 'empresa_endereco': None, 'empresa_cidade': None, 'dias_vencimento': 2, 'banco': '399', 'carteira': None, 'banco_agencia': None, 'banco_conta': None, 'banco_convenio': '1234567', 'linha_1': None, 'linha_2': None, 'linha_3': None, } validador = cadastro.BoletoValidador(valor=boleto, valores={}) validador.eh_valido.should.be.equal(True) validador.erros.should.be.empty
def test_banco_convenio_banco_brasil_nao_pode_ter_qtd_invalida_digitos(self): boleto = { 'empresa_beneficiario': None, 'empresa_cnpj': None, 'empresa_estado': None, 'empresa_endereco': None, 'empresa_cidade': None, 'dias_vencimento': 2, 'banco': BANCOS['001'], 'carteira': None, 'banco_agencia': None, 'banco_conta': None, 'banco_convenio': '123', 'linha_1': None, 'linha_2': None, 'linha_3': None, } validador = cadastro.BoletoValidador(valor=boleto, valores={}) validador.eh_valido.should.be.equal(False) validador.erros.should.be.equal({'banco_convenio': u'Certifique-se de que o valor tenha 6, 7 ou 8 caracteres (ele possui 3).'})
def test_banco_convenio_deve_ter_somente_digitos(self): boleto = { 'empresa_beneficiario': None, 'empresa_cnpj': None, 'empresa_estado': None, 'empresa_endereco': None, 'empresa_cidade': None, 'dias_vencimento': 2, 'banco': None, 'carteira': None, 'banco_agencia': None, 'banco_conta': None, 'banco_convenio': '12w3', 'linha_1': None, 'linha_2': None, 'linha_3': None, } validador = cadastro.BoletoValidador(valor=boleto, valores={}) validador.eh_valido.should.be.equal(False) validador.erros.should.be.equal({'banco_convenio': u'Informação inválida. Deve conter apenas digitos.'})
def test_dias_vencimento_nao_pode_ser_menor_que_zero(self): boleto = { 'empresa_beneficiario': None, 'empresa_cnpj': None, 'empresa_estado': None, 'empresa_endereco': None, 'empresa_cidade': None, 'dias_vencimento': -1, 'banco': None, 'carteira': None, 'banco_agencia': None, 'banco_conta': None, 'banco_convenio': None, 'linha_1': None, 'linha_2': None, 'linha_3': None, } validador = cadastro.BoletoValidador(valor=boleto, valores={}) validador.eh_valido.should.be.equal(False) validador.erros.should.be.equal({'dias_vencimento': u'Dias para o vencimento deve ser maior que 0 (zero).'})
def test_deve_adicionar_erro_se_nao_for_dicionario(self): validador = cadastro.BoletoValidador(valor='nao-eh-dict', valores={}) validador.eh_valido.should.be.equal(False) validador.erros.should.contain('dados_invalidos') validador.erros['dados_invalidos'].should.be.equal(u'Os dados do boleto devem ser em formato de dicionário')