Browse Source

Ajustes gerais

tags/0.1
Marinho Brandão 16 years ago
parent
commit
9624c61f73
  1. 3
      README
  2. 4
      pynfe/processamento/__init__.py
  3. 33
      pynfe/processamento/comunicacao.py
  4. 11
      run_fake_soap_server.py
  5. 2
      tests/01-basico.txt
  6. 2
      tests/03-processamento-03-assinatura.txt
  7. 5
      tests/03-processamento-04-comunicacao.txt
  8. 17
      tests/04-servidor-soap.txt
  9. BIN
      tests/certificado.pfx

3
README

@ -83,3 +83,6 @@ Referências
- Lista de codigos para campo EX TIPI
- http://www.fisconet.com.br/ipi/tipi/04.htm
- Certificado para testes
- http://nf-eletronica.com/blog/?p=133

4
pynfe/processamento/__init__.py

@ -1,6 +1,6 @@
from interfaces import InterfaceXML
from serializacao import SerializacaoXML
from validacao import Validacao
from assinatura import AssinaturaA1
from comunicacao import Comunicacao
from comunicacao import ComunicacaoSefaz
from danfe import DANFE

33
pynfe/processamento/comunicacao.py

@ -1,3 +1,34 @@
# -*- coding: utf-8 -*-
class Comunicacao(object):
pass
u"""Classe abstrata responsavel por definir os metodos e logica das classes
de comunicação com os webservices da NF-e."""
servidor = None
porta = None
def __init__(self, servidor, porta):
self.servidor = servidor
self.porta = porta
class ComunicacaoSefaz(Comunicacao):
u"""Classe de comunicação que segue o padrão definido para as SEFAZ dos Estados."""
def transmitir(self, nota_fiscal):
pass
def cancelar(self, nota_fiscal):
pass
def situacao_nfe(self, nota_fiscal):
pass
def status_servico(self):
pass
def consultar_cadastro(self, instancia):
pass
def inutilizar_faixa_numeracao(self, faixa):
pass

11
run_fake_soap_server.py

@ -1,12 +1,13 @@
from soaplib.wsgi_soap import SimpleWSGISoapApp
from soaplib.service import soapmethod
from soaplib.serializers.primitive import String, Integer, Array, Null
class ServidorNFEFalso(SimpleWSGISoapApp):
from soaplib.serializers.primitive import String, Integer, Array, Null
@soapmethod(String, Integer, _returns=String)
def ping(self, palavra, vezes):
return ','.join([palavra for i in range(vezes)])
@soapmethod(String, Integer, _returns=Array(String))
def ping(self, nome, vezes):
ret = [nome for i in range(vezes)]
print ret
return ret
if __name__ == '__main__':
porta = 8080

2
tests/01-basico.txt

@ -91,7 +91,7 @@ Os pacotes da biblioteca sao:
>>> from pynfe import processamento
>>> set([attr for attr in dir(processamento) if not attr.startswith('__')]) == set([
... 'AssinaturaA1', 'Comunicacao', 'DANFE', 'InterfaceXML', 'Validacao',
... 'AssinaturaA1', 'ComunicacaoSefaz', 'DANFE', 'InterfaceXML', 'Validacao',
... 'assinatura', 'comunicacao', 'danfe', 'interfaces', 'validacao'])
True

2
tests/03-processamento-03-assinatura.txt

@ -15,7 +15,7 @@ Assinando NF-e
Na hora de assinar, selecionar um Certificado Digital
>>> assinatura = AssinaturaA1(certificado, 'senha')
>>> assinatura = AssinaturaA1(certificado, senha='associacao')
TODO: A senha deveria ser criptografada de forma a evitar que alguem entre nesse
processo e a capture.

5
tests/03-processamento-04-comunicacao.txt

@ -0,0 +1,5 @@
PROCESSAMENTO - COMUNICACAO
===========================
>>> from pynfe.processamento import ComunicacaoSefaz

17
tests/04-servidor-soap.txt

@ -5,9 +5,18 @@ Este teste vai verificar um servidor, executado atraves do comando
'run_fake_soap_server.py', para enviar requisicoes SOAP e esperar as
responstas em formato WSDL, de forma a simular o servidor da SEFAZ.
Usando suds
>>> from suds.client import Client
>>> url = 'http://localhost:8080/ServidorNFEFalso?wsdl'
>>> #client = Client(url)
>>> #print client
>>> #print client.service.ping('mario', 5)
>>> client = Client('http://localhost:8080/ServidorNFEFalso?wsdl', cache=None)
>>> client.set_options(retxml=True)
>>> print client.service.ping('mario', 5)
Usando soaplib
>>> #from run_fake_soap_server import ServidorNFEFalso
>>> #from soaplib.client import ServiceClient, make_service_client
>>> #client = make_service_client('http://localhost:8080/', ServidorNFEFalso())
>>> #print client.ping('Brasil', 5)
['Brasil', 'Brasil', 'Brasil', 'Brasil', 'Brasil']

BIN
tests/certificado.pfx

Loading…
Cancel
Save