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.
564 lines
20 KiB
564 lines
20 KiB
from pynfe.processamento.comunicacao import ComunicacaoSefaz
|
|
from pynfe.utils.flags import NAMESPACE_NFE
|
|
from selenium import webdriver
|
|
import time
|
|
from selenium.webdriver.common.keys import Keys
|
|
from selenium.webdriver.common.by import By
|
|
import re
|
|
|
|
import unittest
|
|
certificado = "certificado/certificado_mixpel.pfx"
|
|
senha = 'lucilene570'
|
|
url_prod = None
|
|
url_hom = None
|
|
|
|
|
|
|
|
class TestGetUrl(unittest.TestCase):
|
|
|
|
|
|
def dadosPagina(informacoes):
|
|
tabelaServicos = []
|
|
for informacao in informacoes:
|
|
tabelaServicos.append(informacao.text)
|
|
listaServicos = [s.split('\n') for s in tabelaServicos]
|
|
return listaServicos
|
|
|
|
|
|
def filtragemListProd(listaServicos):
|
|
linhaServicos = []
|
|
regexp = re.compile('[a-zA-z0-9]+[ ]+[4.00]+[ ]+[a-zA-Z0-9:?//.-]*')
|
|
for servicos in listaServicos:
|
|
for servico in servicos:
|
|
if regexp.match(servico):
|
|
linhaServicos.append(servico)
|
|
|
|
listaServicos = [s.split(' ') for s in linhaServicos]
|
|
list_estados = ["AM","AM","AM","AM","AM","AM",
|
|
"GO","GO","GO","GO","GO","GO","GO",
|
|
"MT","MT","MT","MT","MT","MT",
|
|
"MS","MS","MS","MS","MS","MS","MS",
|
|
"MG","MG","MG","MG","MG","MG","MG",
|
|
"PR","PR","PR","PR","PR","PR","PR",
|
|
"RS","RS","RS","RS","RS","RS",
|
|
"SVRS","SVRS","SVRS","SVRS","SVRS","SVRS",
|
|
"SP","SP","SP","SP","SP","SP"
|
|
]
|
|
listaServicos=[x + [y] for x, y in zip(listaServicos, list_estados)]
|
|
return listaServicos
|
|
|
|
|
|
def filtragemListHom(listaServicos):
|
|
linhaServicos = []
|
|
regexp = re.compile('[a-zA-z0-9]+[ ]+[4.00]+[ ]+[a-zA-Z0-9:?//.-]*')
|
|
for servicos in listaServicos:
|
|
for servico in servicos:
|
|
if regexp.match(servico):
|
|
linhaServicos.append(servico)
|
|
|
|
listaServicos = [s.split(' ') for s in linhaServicos]
|
|
list_estados = ["AM","AM","AM","AM","AM","AM",
|
|
"GO","GO","GO","GO","GO","GO","GO",
|
|
"MT","MT","MT","MT","MT","MT",
|
|
"MS","MS","MS","MS","MS","MS","MS",
|
|
"MG","MG","MG","MG","MG","MG","MG",
|
|
"PR","PR","PR","PR","PR","PR","PR",
|
|
"RS","RS","RS","RS","RS","RS",
|
|
"SVRS","SVRS","SVRS","SVRS","SVRS","SVRS",
|
|
"SP","SP","SP","SP","SP","SP"
|
|
]
|
|
listaServicos=[x + [y] for x, y in zip(listaServicos, list_estados)]
|
|
return listaServicos
|
|
|
|
|
|
def nomeEventos(listaServicos):
|
|
for listaServico in listaServicos:
|
|
if listaServico[0] == "NfeInutilizacao":
|
|
listaServico[0] = "INUTILIZACAO"
|
|
if listaServico[0] == "NfeConsultaProtocolo":
|
|
listaServico[0] = "CHAVE"
|
|
if listaServico[0] == "NfeStatusServico":
|
|
listaServico[0] = "STATUS"
|
|
if listaServico[0] == "RecepcaoEvento":
|
|
listaServico[0] = "EVENTOS"
|
|
if listaServico[0] == "NFeAutorizacao":
|
|
listaServico[0] = "AUTORIZACAO"
|
|
if listaServico[0] == "NFeRetAutorizacao":
|
|
listaServico[0] = "RECIBO"
|
|
if listaServico[0] == "NfeConsultaCadastro":
|
|
listaServico[0] = "CADASTRO"
|
|
return listaServicos
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
|
|
# Firefox
|
|
driver = webdriver.Firefox()
|
|
driver.set_page_load_timeout(10)
|
|
#Abre a pagina do WebService da Receita para NFCe em Produção
|
|
driver.get("http://nfce.encat.org/desenvolvedor/webservices-p/")
|
|
#Busca todas as tables da Pagina
|
|
informacoes = driver.find_elements(By.XPATH,'//table')
|
|
#busca todos os elementos das tabelas do WebService da Receita, e separa-os em elementos de uma list.
|
|
listaServicos = TestGetUrl.dadosPagina(informacoes)
|
|
#Realiza uma filtragem de elementos na List, buscando por expressão regular os elementos da versão 4.00,
|
|
#Adicionando no final de cada list, o estado que pertence o evento correspondente
|
|
listaServicos = TestGetUrl.filtragemListProd(listaServicos)
|
|
#Altera os nomes dos serviços armazenados na list
|
|
listaServicos = TestGetUrl.nomeEventos(listaServicos)
|
|
|
|
global url_prod
|
|
url_prod = listaServicos
|
|
|
|
|
|
#busca todos os elementos das tabelas do WebService da Receita, e separa-os em elementos de uma list.
|
|
driver.get("http://nfce.encat.org/desenvolvedor/webservices-h/")
|
|
#Busca todas as tables da Pagina
|
|
informacoes = driver.find_elements(By.XPATH,'//table')
|
|
#busca todos os elementos das tabelas do WebService da Receita, e separa-os em elementos de uma list.
|
|
listaServicos = TestGetUrl.dadosPagina(informacoes)
|
|
#Realiza uma filtragem de elementos na List, buscando por expressão regular os elementos da versão 4.00,
|
|
#Adicionando no final de cada list, o estado que pertence o evento correspondente
|
|
listaServicos = TestGetUrl.filtragemListHom(listaServicos)
|
|
#Altera os nomes dos serviços armazenados na list
|
|
listaServicos = TestGetUrl.nomeEventos(listaServicos)
|
|
|
|
global url_hom
|
|
url_hom = listaServicos
|
|
|
|
|
|
driver.quit()
|
|
|
|
|
|
|
|
def test_get_url_am(self):
|
|
global url_prod
|
|
global url_hom
|
|
estado_webservice = []
|
|
list_web_service_prod = []
|
|
list_servicos_prod = []
|
|
list_web_service_hom = []
|
|
list_servicos_hom = []
|
|
uf="am"
|
|
|
|
with self.subTest("Erro do WebService em Homologação em AM"):
|
|
for estado in url_hom:
|
|
if estado[3]=="AM":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_hom.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_hom.append(servico[0])
|
|
|
|
homologacao = True
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_hom:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_hom[s])
|
|
s=s+1
|
|
|
|
with self.subTest("Erro do WebService em Produção em AM"):
|
|
estado_webservice = []
|
|
for estado in url_prod:
|
|
if estado[3]=="AM":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_prod.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_prod.append(servico[0])
|
|
|
|
homologacao = False
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_prod:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_prod[s])
|
|
s=s+1
|
|
|
|
|
|
|
|
|
|
def test_get_url_mg(self):
|
|
global url_prod
|
|
global url_hom
|
|
estado_webservice = []
|
|
list_web_service_prod = []
|
|
list_servicos_prod = []
|
|
list_web_service_hom = []
|
|
list_servicos_hom = []
|
|
uf = 'mg'
|
|
|
|
with self.subTest("Erro do WebService em Homologação em MG"):
|
|
for estado in url_hom:
|
|
if estado[3]=="MG":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_hom.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_hom.append(servico[0])
|
|
|
|
homologacao = True
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_hom:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_hom[s])
|
|
s=s+1
|
|
|
|
with self.subTest("Erro do WebService em Produção em MG"):
|
|
estado_webservice = []
|
|
for estado in url_prod:
|
|
if estado[3]=="MG":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_prod.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_prod.append(servico[0])
|
|
|
|
homologacao = False
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_prod:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_prod[s])
|
|
s=s+1
|
|
|
|
|
|
|
|
def test_get_url_sp(self):
|
|
global url_prod
|
|
global url_hom
|
|
estado_webservice = []
|
|
list_web_service_prod = []
|
|
list_servicos_prod = []
|
|
list_web_service_hom = []
|
|
list_servicos_hom = []
|
|
uf = 'sp'
|
|
|
|
with self.subTest("Erro do WebService em Homologação em SP"):
|
|
for estado in url_hom:
|
|
if estado[3]=="SP":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_hom.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_hom.append(servico[0])
|
|
|
|
homologacao = True
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_hom:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_hom[s])
|
|
s=s+1
|
|
|
|
with self.subTest("Erro do WebService em Produção em SP"):
|
|
estado_webservice = []
|
|
for estado in url_prod:
|
|
if estado[3]=="SP":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_prod.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_prod.append(servico[0])
|
|
|
|
homologacao = False
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_prod:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_prod[s])
|
|
s=s+1
|
|
|
|
|
|
|
|
def test_get_url_pr(self):
|
|
global url_prod
|
|
global url_hom
|
|
estado_webservice = []
|
|
list_web_service_prod = []
|
|
list_servicos_prod = []
|
|
list_web_service_hom = []
|
|
list_servicos_hom = []
|
|
uf = 'pr'
|
|
|
|
with self.subTest("Erro do WebService em Homologação em PR"):
|
|
for estado in url_hom:
|
|
if estado[3]=="PR":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_hom.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_hom.append(servico[0])
|
|
|
|
homologacao = True
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
|
|
for servico in list_servicos_hom:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_hom[s])
|
|
s=s+1
|
|
|
|
with self.subTest("Erro do WebService em Produção em PR"):
|
|
estado_webservice = []
|
|
for estado in url_prod:
|
|
if estado[3]=="PR":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_prod.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_prod.append(servico[0])
|
|
|
|
homologacao = False
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
|
|
for servico in list_servicos_prod:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_prod[s])
|
|
s=s+1
|
|
|
|
|
|
|
|
def test_get_url_rs(self):
|
|
global url_prod
|
|
global url_hom
|
|
estado_webservice = []
|
|
list_web_service_prod = []
|
|
list_servicos_prod = []
|
|
list_web_service_hom = []
|
|
list_servicos_hom = []
|
|
uf = "rs"
|
|
|
|
|
|
with self.subTest("Erro do WebService em Homologação em RS"):
|
|
for estado in url_hom:
|
|
if estado[3]=="RS":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_hom.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_hom.append(servico[0])
|
|
|
|
homologacao = True
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_hom:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_hom[s])
|
|
s=s+1
|
|
|
|
|
|
with self.subTest("Erro do WebService em Produção em RS"):
|
|
estado_webservice = []
|
|
for estado in url_prod:
|
|
if estado[3]=="RS":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_prod.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_prod.append(servico[0])
|
|
|
|
homologacao = False
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_prod:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_prod[s])
|
|
s=s+1
|
|
|
|
|
|
|
|
|
|
def test_get_url_ms(self):
|
|
global url_prod
|
|
global url_hom
|
|
estado_webservice = []
|
|
list_web_service_prod = []
|
|
list_servicos_prod = []
|
|
list_web_service_hom = []
|
|
list_servicos_hom = []
|
|
uf = "ms"
|
|
|
|
with self.subTest("Erro do WebService em Produção em MS"):
|
|
for estado in url_prod:
|
|
if estado[3]=="MS":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_prod.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_prod.append(servico[0])
|
|
|
|
homologacao = False
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_prod:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_prod[s])
|
|
s=s+1
|
|
|
|
with self.subTest("Erro do WebService em Homologação em MS"):
|
|
estado_webservice = []
|
|
for estado in url_hom:
|
|
if estado[3]=="MS":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_hom.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_hom.append(servico[0])
|
|
|
|
homologacao = True
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_hom:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_hom[s])
|
|
s=s+1
|
|
|
|
|
|
|
|
def test_get_url_mt(self):
|
|
global url_prod
|
|
global url_hom
|
|
estado_webservice = []
|
|
list_web_service_prod = []
|
|
list_servicos_prod = []
|
|
list_web_service_hom = []
|
|
list_servicos_hom = []
|
|
uf = "mt"
|
|
|
|
with self.subTest("Erro do WebService em Produção em MT"):
|
|
for estado in url_prod:
|
|
if estado[3]=="MT":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_prod.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_prod.append(servico[0])
|
|
|
|
homologacao = True
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_prod:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_prod[s])
|
|
s=s+1
|
|
|
|
with self.subTest("Erro do WebService em Homologação em MT"):
|
|
estado_webservice = []
|
|
for estado in url_hom:
|
|
if estado[3]=="MT":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_hom.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_hom.append(servico[0])
|
|
|
|
homologacao = False
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_hom:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_hom[s])
|
|
s=s+1
|
|
|
|
|
|
|
|
def test_get_url_go(self):
|
|
global url_prod
|
|
global url_hom
|
|
estado_webservice = []
|
|
list_web_service_prod = []
|
|
list_servicos_prod = []
|
|
list_web_service_hom = []
|
|
list_servicos_hom = []
|
|
uf = "go"
|
|
|
|
with self.subTest("Erro do WebService em Homologação em GO"):
|
|
for estado in url_hom:
|
|
if estado[3]=="GO":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_hom.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_hom.append(servico[0])
|
|
|
|
homologacao = True
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_hom:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_hom[s])
|
|
s=s+1
|
|
|
|
with self.subTest("Erro do WebService em Produção em GO"):
|
|
estado_webservice = []
|
|
for estado in url_prod:
|
|
if estado[3]=="GO":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_prod.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_prod.append(servico[0])
|
|
|
|
homologacao = False
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_prod:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_prod[s])
|
|
s=s+1
|
|
|
|
|
|
|
|
|
|
def test_get_url_svrs(self):
|
|
global url_prod
|
|
global url_hom
|
|
estado_webservice = []
|
|
list_web_service_prod = []
|
|
list_servicos_prod = []
|
|
list_web_service_hom = []
|
|
list_servicos_hom = []
|
|
uf = "svrs"
|
|
|
|
|
|
with self.subTest("Erro do WebService em Homologação em SVRS"):
|
|
for estado in url_hom:
|
|
if estado[3]=="SVRS":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_hom.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_hom.append(servico[0])
|
|
|
|
homologacao = True
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_hom:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_hom[s])
|
|
s=s+1
|
|
|
|
with self.subTest("Erro do WebService em Produção em SVRS"):
|
|
estado_webservice = []
|
|
for estado in url_prod:
|
|
if estado[3]=="SVRS":
|
|
estado_webservice.append(estado)
|
|
for servico in estado_webservice:
|
|
list_web_service_prod.append(servico[2])
|
|
for servico in estado_webservice:
|
|
list_servicos_prod.append(servico[0])
|
|
|
|
homologacao = False
|
|
con = ComunicacaoSefaz(uf,certificado,senha,homologacao)
|
|
s = 0
|
|
for servico in list_servicos_prod:
|
|
url = con._get_url('nfce',servico)
|
|
self.assertEqual(url,list_web_service_prod[s])
|
|
s=s+1
|