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 |
|||
|
|||
import os.path |
|||
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): |
|||
|
|||
@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