# coding=utf-8 """ Created on Jun 16, 2015 @author: danimar """ import unittest import datetime from pytrustnfe.utils import date_tostring, datetime_tostring, gerar_chave from pytrustnfe.utils import ChaveNFe class test_utils(unittest.TestCase): kwargs = { "cnpj": "33009911002506", "estado": "52", "emissao": "0604", "modelo": "55", "serie": "012", "numero": 780, "tipo": 0, "codigo": "26730161", } def test_date_tostring(self): hoje = datetime.date.today() data = date_tostring(hoje) self.assertEqual(data, hoje.strftime("%d-%m-%y"), "Não convertido corretamente") self.assertRaises(Exception, date_tostring, "Not a date") def test_datetime_tostring(self): hoje = datetime.datetime.now() data = datetime_tostring(hoje) self.assertEqual( data, hoje.strftime("%d-%m-%y %H:%M:%S"), "Não convertido corretamente" ) self.assertRaises(Exception, datetime_tostring, "Not a date") def test_geracao_chave(self): chave = ChaveNFe(**self.kwargs) str_chave = gerar_chave(chave) chave_correta = "52060433009911002506550120000007800267301615" self.assertEqual(str_chave, chave_correta, "Geração de chave nf-e incorreta") str_chave = gerar_chave(chave, prefix="NFe") chave_correta = "NFe52060433009911002506550120000007800267301615" self.assertEqual( str_chave, chave_correta, "Geração de chave nf-e com prefixo incorreta" ) self.assertRaises(Exception, gerar_chave, "Not a ChaveNFe object") self.assertRaises(Exception, gerar_chave, "Not a ChaveNFe object") def test_chave_nfe(self): chave = ChaveNFe(**self.kwargs) with self.assertRaises(AssertionError) as cm: chave.cnpj = "" chave.validar() chave.cnpj = "1234567891011" self.assertEqual( "CNPJ necessário para criar chave NF-e", str(cm.exception), "Validação da chave nf-e incorreta", ) with self.assertRaises(AssertionError) as cm: chave.estado = "" chave.validar() chave.estado = "42" self.assertEqual( "Estado necessário para criar chave NF-e", str(cm.exception), "Validação da chave nf-e incorreta", ) with self.assertRaises(AssertionError) as cm: chave.emissao = "" chave.validar() chave.emissao = "0" self.assertEqual( "Emissão necessário para criar chave NF-e", str(cm.exception), "Validação da chave nf-e incorreta", ) with self.assertRaises(AssertionError) as cm: chave.modelo = "" chave.validar() chave.modelo = "55" self.assertEqual( "Modelo necessário para criar chave NF-e", str(cm.exception), "Validação da chave nf-e incorreta", ) with self.assertRaises(AssertionError) as cm: chave.serie = "" chave.validar() chave.serie = "012" self.assertEqual( "Série necessária para criar chave NF-e", str(cm.exception), "Validação da chave nf-e incorreta", ) with self.assertRaises(AssertionError) as cm: chave.numero = "" chave.validar() chave.numero = "000000780" self.assertEqual( "Número necessário para criar chave NF-e", str(cm.exception), "Validação da chave nf-e incorreta", ) with self.assertRaises(AssertionError) as cm: chave.tipo = "" chave.validar() chave.tipo = "42" self.assertEqual( "Tipo necessário para criar chave NF-e", str(cm.exception), "Validação da chave nf-e incorreta", ) with self.assertRaises(AssertionError) as cm: chave.codigo = "" chave.validar() self.assertEqual( "Código necessário para criar chave NF-e", str(cm.exception), "Validação da chave nf-e incorreta", )