# 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')