12 changed files with 141 additions and 100 deletions
-
2pytrustnfe/Servidores.py
-
1pytrustnfe/test/XMLs/jinja_remove_empty.xml
-
1pytrustnfe/test/XMLs/jinja_result.xml
-
6pytrustnfe/test/XMLs/jinja_template.xml
-
20pytrustnfe/test/test_certificado.py
-
42pytrustnfe/test/test_servidores.py
-
8pytrustnfe/test/test_utils.py
-
26pytrustnfe/test/test_xml.py
-
88pytrustnfe/test/test_xml_serializacao.py
-
11pytrustnfe/utils.py
-
27pytrustnfe/xml/__init__.py
-
3pytrustnfe/xml/filters.py
@ -0,0 +1 @@ |
|||||
|
<consNFeDest xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01"><tpAmb>oi</tpAmb><CNPJ>ola</CNPJ><indEmi>comovai</indEmi></consNFeDest> |
||||
@ -0,0 +1 @@ |
|||||
|
<consNFeDest xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01"><tpAmb>oi</tpAmb><CNPJ>ola</CNPJ><indNFe/><indEmi>comovai</indEmi></consNFeDest> |
||||
@ -0,0 +1,6 @@ |
|||||
|
<consNFeDest xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01"> |
||||
|
<tpAmb>{{ tag1 }}</tpAmb> |
||||
|
<CNPJ>{{ tag2 }}</CNPJ> |
||||
|
<indNFe></indNFe> |
||||
|
<indEmi>{{ tag3 }}</indEmi> |
||||
|
</consNFeDest> |
||||
@ -0,0 +1,42 @@ |
|||||
|
# coding=utf-8 |
||||
|
''' |
||||
|
Created on Jun 14, 2015 |
||||
|
|
||||
|
@author: danimar |
||||
|
''' |
||||
|
import unittest |
||||
|
from pytrustnfe.Servidores import localizar_url |
||||
|
|
||||
|
url_ba = 'https://nfe.sefaz.ba.gov.br/webservices/NfeAutorizacao/NfeAutoriza\ |
||||
|
cao.asmx' |
||||
|
|
||||
|
url_sp = 'https://nfe.fazenda.sp.gov.br/ws/nfeautorizacao.asmx' |
||||
|
|
||||
|
url_sc = 'https://nfe.svrs.rs.gov.br/ws/NfeAutorizacao/NfeAutorizacao.asmx' |
||||
|
|
||||
|
url_rs = 'https://nfe.sefaz.rs.gov.br/ws/NfeAutorizacao/NFeAutorizacao.asmx' |
||||
|
|
||||
|
url_cad_rs = 'https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadcon\ |
||||
|
sultacadastro2.asmx' |
||||
|
|
||||
|
url_cad_sc = 'https://cad.svrs.rs.gov.br/ws/CadConsultaCadastro/CadConsult\ |
||||
|
aCadastro2.asmx' |
||||
|
|
||||
|
|
||||
|
class test_servidores(unittest.TestCase): |
||||
|
|
||||
|
def test_localizar_url(self): |
||||
|
url = localizar_url('NfeAutorizacao', '29', ambiente=1) |
||||
|
self.assertEqual(url, url_ba) |
||||
|
url = localizar_url('NfeAutorizacao', '35', ambiente=1) |
||||
|
self.assertEqual(url, url_sp) |
||||
|
url = localizar_url('NfeAutorizacao', '42', ambiente=1) |
||||
|
self.assertEqual(url, url_sc) |
||||
|
url = localizar_url('NfeAutorizacao', '43', ambiente=1) |
||||
|
self.assertEqual(url, url_rs) |
||||
|
|
||||
|
url = localizar_url('NfeConsultaCadastro', '43', ambiente=2) |
||||
|
self.assertEqual(url, url_cad_rs) |
||||
|
|
||||
|
url = localizar_url('NfeConsultaCadastro', '42', ambiente=2) |
||||
|
self.assertEqual(url, url_cad_sc) |
||||
@ -0,0 +1,26 @@ |
|||||
|
# coding=utf-8 |
||||
|
''' |
||||
|
Created on Jun 14, 2015 |
||||
|
|
||||
|
@author: danimar |
||||
|
''' |
||||
|
import unittest |
||||
|
from datetime import datetime |
||||
|
from pytrustnfe.xml.filters import normalize_str |
||||
|
from pytrustnfe.xml.filters import format_percent |
||||
|
from pytrustnfe.xml.filters import format_date |
||||
|
from pytrustnfe.xml.filters import format_datetime |
||||
|
|
||||
|
|
||||
|
class test_xmlfilters(unittest.TestCase): |
||||
|
|
||||
|
def test_xmlfilters(self): |
||||
|
word = normalize_str('ação café pó pá veêm') |
||||
|
self.assertEqual(word, 'acao cafe po pa veem') |
||||
|
self.assertEqual(1.5, format_percent(150)) |
||||
|
self.assertEqual('aa', format_date('aa')) |
||||
|
self.assertEqual('aa', format_datetime('aa')) |
||||
|
|
||||
|
dt = datetime(2016, 9, 17, 12, 12, 12) |
||||
|
self.assertEqual('2016-09-17', format_date(dt.date())) |
||||
|
self.assertEqual('2016-09-17T12:12:12', format_datetime(dt)) |
||||
@ -1,65 +1,37 @@ |
|||||
# coding=utf-8 |
# coding=utf-8 |
||||
|
|
||||
|
import os.path |
||||
import unittest |
import unittest |
||||
from unittest import skip |
|
||||
|
|
||||
|
|
||||
XML_TESTE = '<enviNFe versao="3.10">'\ |
|
||||
'<idLote>1</idLote>'\ |
|
||||
'<indSinc>1</indSinc>'\ |
|
||||
'<NFe>'\ |
|
||||
'<infNFe versao="3.10" Id="NFe456465465465465654652123564878">'\ |
|
||||
'<ide>'\ |
|
||||
'<cUF>32</cUF>'\ |
|
||||
'<cNF>0001</cNF>'\ |
|
||||
'<natOp>Venda de mercadorias</natOp>'\ |
|
||||
'</ide>'\ |
|
||||
'</infNFe>'\ |
|
||||
'</NFe>'\ |
|
||||
'</enviNFe>' |
|
||||
|
|
||||
XML_LIST = '<cobr>'\ |
|
||||
'<dup item="1">'\ |
|
||||
'<nDup>1</nDup>'\ |
|
||||
'<dVenc>21-06-2015</dVenc>'\ |
|
||||
'<vDup>123.00</vDup>'\ |
|
||||
'</dup>'\ |
|
||||
'<dup item="2">'\ |
|
||||
'<nDup>2</nDup>'\ |
|
||||
'<dVenc>21-07-2015</dVenc>'\ |
|
||||
'<vDup>123.00</vDup>'\ |
|
||||
'</dup>'\ |
|
||||
'</cobr>' |
|
||||
|
from lxml import etree |
||||
|
from pytrustnfe.xml import render_xml |
||||
|
from pytrustnfe.xml import sanitize_response |
||||
|
|
||||
|
|
||||
class test_xml_serializacao(unittest.TestCase): |
class test_xml_serializacao(unittest.TestCase): |
||||
|
|
||||
@skip('Pulando') |
|
||||
def test_serializacao(self): |
|
||||
t = DynamicXml("enviNFe") |
|
||||
t(versao="3.10") |
|
||||
t.idLote = "1" |
|
||||
t.indSinc = "1" |
|
||||
t.NFe.infNFe(versao="3.10", Id="NFe456465465465465654652123564878") |
|
||||
t.NFe.infNFe.ide.cUF = "32" |
|
||||
t.NFe.infNFe.ide.cNF = "0001" |
|
||||
t.NFe.infNFe.ide.natOp = "Venda de mercadorias" |
|
||||
|
|
||||
xml = t.render() |
|
||||
self.assertEqual(xml, XML_TESTE, "Geração de xml com problemas") |
|
||||
|
|
||||
@skip('Pulando') |
|
||||
def test_list_serializacao(self): |
|
||||
t = DynamicXml("cobr") |
|
||||
t.dup[0](item="1") |
|
||||
t.dup[0].nDup = '1' |
|
||||
t.dup[0].dVenc = '21-06-2015' |
|
||||
t.dup[0].vDup = '123.00' |
|
||||
t.dup[1](item="2") |
|
||||
t.dup[1].nDup = '2' |
|
||||
t.dup[1].dVenc = '21-07-2015' |
|
||||
t.dup[1].vDup = '123.00' |
|
||||
|
|
||||
xml = t.render() |
|
||||
self.assertEqual(xml, XML_LIST, |
|
||||
"Xml com lista de valores sendo gerado incorretamnte") |
|
||||
|
def test_serializacao_default(self): |
||||
|
path = os.path.join(os.path.dirname(__file__), 'XMLs') |
||||
|
xml = render_xml(path, 'jinja_template.xml', False, tag1='oi', |
||||
|
tag2='ola', tag3='comovai') |
||||
|
|
||||
|
result = open(os.path.join(path, 'jinja_result.xml'), 'r').read() |
||||
|
self.assertEqual(xml + '\n', result) |
||||
|
|
||||
|
def test_serializacao_remove_empty(self): |
||||
|
path = os.path.join(os.path.dirname(__file__), 'XMLs') |
||||
|
xmlElem = render_xml(path, 'jinja_template.xml', True, tag1='oi', |
||||
|
tag2='ola', tag3='comovai') |
||||
|
xml = etree.tostring(xmlElem) |
||||
|
result = open(os.path.join(path, 'jinja_remove_empty.xml'), 'r').read() |
||||
|
self.assertEqual(xml + '\n', result) |
||||
|
|
||||
|
def test_sanitize_response(self): |
||||
|
path = os.path.join(os.path.dirname(__file__), 'XMLs') |
||||
|
xml_to_clear = open(os.path.join(path, 'jinja_result.xml'), 'r').read() |
||||
|
xml, obj = sanitize_response(xml_to_clear) |
||||
|
|
||||
|
self.assertEqual(xml, xml_to_clear) |
||||
|
self.assertEqual(obj.tpAmb, 'oi') |
||||
|
self.assertEqual(obj.CNPJ, 'ola') |
||||
|
self.assertEqual(obj.indNFe, '') |
||||
|
self.assertEqual(obj.indEmi, 'comovai') |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue