You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.8 KiB
68 lines
1.8 KiB
# coding=utf-8
|
|
"""
|
|
Created on Jun 14, 2015
|
|
|
|
@author: danimar
|
|
"""
|
|
import os
|
|
import os.path
|
|
import unittest
|
|
from lxml import etree
|
|
from pytrustnfe.nfe.assinatura import Assinatura
|
|
|
|
|
|
XML_ASSINAR = (
|
|
'<Envelope xmlns="urn:envelope">'
|
|
' <Data Id="NFe43150602261542000143550010000000761792265342">'
|
|
" Hello, World!"
|
|
" </Data>"
|
|
"</Envelope>"
|
|
)
|
|
|
|
|
|
XML_ERRADO = (
|
|
'<Envelope xmlns="urn:envelope">'
|
|
' <Data Id="NFe">'
|
|
" Hello, World!"
|
|
" </Data>"
|
|
"</Envelope>"
|
|
)
|
|
|
|
|
|
class test_assinatura(unittest.TestCase):
|
|
|
|
caminho = os.path.dirname(__file__)
|
|
|
|
def test_assinar_xml_senha_invalida(self):
|
|
pfx = open(os.path.join(self.caminho, "teste.pfx"), "rb").read()
|
|
signer = Assinatura(pfx, "123")
|
|
self.assertRaises(
|
|
Exception,
|
|
signer.assina_xml,
|
|
signer,
|
|
etree.fromstring(XML_ASSINAR),
|
|
"NFe43150602261542000143550010000000761792265342",
|
|
)
|
|
|
|
def test_assinar_xml_invalido(self):
|
|
pfx = open(os.path.join(self.caminho, "teste.pfx"), "rb").read()
|
|
signer = Assinatura(pfx, "123456")
|
|
self.assertRaises(
|
|
Exception,
|
|
signer.assina_xml,
|
|
signer,
|
|
etree.fromstring(XML_ERRADO),
|
|
"NFe43150602261542000143550010000000761792265342",
|
|
)
|
|
|
|
def test_assinar_xml_valido(self):
|
|
pfx = open(os.path.join(self.caminho, "teste.pfx"), "rb").read()
|
|
signer = Assinatura(pfx, "123456")
|
|
xml = signer.assina_xml(
|
|
etree.fromstring(XML_ASSINAR),
|
|
"NFe43150602261542000143550010000000761792265342",
|
|
)
|
|
xml_assinado = open(
|
|
os.path.join(self.caminho, "xml_valido_assinado.xml"), "r"
|
|
).read()
|
|
self.assertEqual(xml_assinado, xml, "Xml assinado é inválido")
|