From a5c821976a049353b06015e3c0739bd94ca021b8 Mon Sep 17 00:00:00 2001 From: Jair Henrique Date: Mon, 28 Aug 2017 19:07:17 -0300 Subject: [PATCH 1/2] use local wsdl files to improve client load --- correios/client.py | 10 +- correios/utils.py | 7 + correios/wsdls/AtendeCliente-production.wsdl | 2010 +++++++++++++++++ correios/wsdls/AtendeCliente-test.wsdl | 2014 ++++++++++++++++++ correios/wsdls/CalcPrecoPrazo.asmx | 1022 +++++++++ correios/wsdls/Rastro.wsdl | 64 + correios/wsdls/Rastro_schema1.xsd | 125 ++ tests/test_client.py | 3 +- tests/test_utils.py | 15 +- 9 files changed, 5263 insertions(+), 7 deletions(-) create mode 100644 correios/wsdls/AtendeCliente-production.wsdl create mode 100644 correios/wsdls/AtendeCliente-test.wsdl create mode 100644 correios/wsdls/CalcPrecoPrazo.asmx create mode 100644 correios/wsdls/Rastro.wsdl create mode 100644 correios/wsdls/Rastro_schema1.xsd diff --git a/correios/client.py b/correios/client.py index 3a0edf9..60922bc 100644 --- a/correios/client.py +++ b/correios/client.py @@ -21,7 +21,7 @@ from correios import xml_utils, DATADIR from correios.exceptions import PostingListSerializerError, TrackingCodesLimitExceededError from correios.models.data import EXTRA_SERVICE_MP, EXTRA_SERVICE_AR -from correios.utils import to_decimal, to_integer +from correios.utils import to_decimal, to_integer, get_wsdl_path from .models.address import ZipAddress, ZipCode from .models.posting import (NotFoundTrackingEvent, TrackingCode, PostingList, ShippingLabel, TrackingEvent, EventStatus, Package, Freight, FreightError) @@ -311,11 +311,11 @@ class Correios: # 'environment': ('url', 'ssl_verification') sigep_urls = { - 'production': ("https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl", True), - 'test': ("https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl", False), + 'production': (get_wsdl_path('AtendeCliente-production.wsdl'), True), + 'test': (get_wsdl_path('AtendeCliente-test.wsdl'), False), } - websro_url = "https://webservice.correios.com.br/service/rastro/Rastro.wsdl" - freight_url = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmx?WSDL" + websro_url = get_wsdl_path('Rastro.wsdl') + freight_url = get_wsdl_path('CalcPrecoPrazo.asmx') def __init__(self, username, password, timeout=8, environment="production"): self.username = username diff --git a/correios/utils.py b/correios/utils.py index 9fbcedf..00c5d8a 100644 --- a/correios/utils.py +++ b/correios/utils.py @@ -3,6 +3,7 @@ from itertools import chain from typing import Container, Iterable, Sized, Union +import os import re @@ -81,3 +82,9 @@ def to_decimal(value: Union[Decimal, str, float], precision=2): quantize = Decimal("0." + "0" * precision) return value.quantize(quantize) + + +def get_wsdl_path(filename) -> str: + return os.path.abspath( + 'correios/wsdls/{}'.format(filename) + ) diff --git a/correios/wsdls/AtendeCliente-production.wsdl b/correios/wsdls/AtendeCliente-production.wsdl new file mode 100644 index 0000000..c7d28e8 --- /dev/null +++ b/correios/wsdls/AtendeCliente-production.wsdl @@ -0,0 +1,2010 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/correios/wsdls/AtendeCliente-test.wsdl b/correios/wsdls/AtendeCliente-test.wsdl new file mode 100644 index 0000000..84209f4 --- /dev/null +++ b/correios/wsdls/AtendeCliente-test.wsdl @@ -0,0 +1,2014 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/correios/wsdls/CalcPrecoPrazo.asmx b/correios/wsdls/CalcPrecoPrazo.asmx new file mode 100644 index 0000000..d322480 --- /dev/null +++ b/correios/wsdls/CalcPrecoPrazo.asmx @@ -0,0 +1,1022 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/correios/wsdls/Rastro.wsdl b/correios/wsdls/Rastro.wsdl new file mode 100644 index 0000000..4812bbe --- /dev/null +++ b/correios/wsdls/Rastro.wsdl @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/correios/wsdls/Rastro_schema1.xsd b/correios/wsdls/Rastro_schema1.xsd new file mode 100644 index 0000000..0e05cf7 --- /dev/null +++ b/correios/wsdls/Rastro_schema1.xsd @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_client.py b/tests/test_client.py index a4ef138..a5f747a 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -24,6 +24,7 @@ from correios.models.posting import (NotFoundTrackingEvent, PostingList, ShippingLabel, TrackingCode, Package) from correios.models.user import PostingCard, Service, ExtraService +from correios.utils import get_wsdl_path from .vcr import vcr try: @@ -36,7 +37,7 @@ @vcr.use_cassette def test_basic_client(): client = correios.Correios(username="sigep", password="XXXXXX", environment=correios.Correios.TEST) - assert client.sigep_url == "https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl" + assert client.sigep_url == get_wsdl_path('AtendeCliente-test.wsdl') assert not client.sigep_verify assert client.username == "sigep" assert client.password == "XXXXXX" diff --git a/tests/test_utils.py b/tests/test_utils.py index 0bf92cf..145df9b 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -2,7 +2,14 @@ import pytest -from correios.utils import capitalize_phrase, RangeSet, rreplace, to_decimal, to_integer +from correios.utils import ( + capitalize_phrase, + get_wsdl_path, + RangeSet, + rreplace, + to_decimal, + to_integer, +) phrase = 'FOo bAr BAZ qux' @@ -96,3 +103,9 @@ def test_to_decimal_precision(v, p, r): )) def test_to_integer(v, r): assert to_integer(v) == r + + +def test_get_wsdl_file_path(): + filepath = get_wsdl_path('fake') + + assert 'correios/wsdls/fake' in filepath From f60a01dc0d2f74d9c3ba4cec675e4d6a7f0fb022 Mon Sep 17 00:00:00 2001 From: Jair Henrique Date: Tue, 29 Aug 2017 11:10:57 -0300 Subject: [PATCH 2/2] create makefile to update wsdl files --- Makefile | 11 +++++++++++ correios/wsdls/Rastro.wsdl | 8 ++++---- 2 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6e0b4a2 --- /dev/null +++ b/Makefile @@ -0,0 +1,11 @@ +.PHONY: help + +help: ## This help + @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) | sort + +update-wsdl: ## Update wsdl files + @curl -o 'correios/wsdls/AtendeCliente-production.wsdl' 'https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl' + @curl -o 'correios/wsdls/AtendeCliente-test.wsdl' 'https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl' + @curl -o 'correios/wsdls/Rastro.wsdl' 'https://webservice.correios.com.br/service/rastro/Rastro.wsdl' + @curl -o 'correios/wsdls/CalcPrecoPrazo.asmx' 'http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmx?WSDL' + @curl -o 'correios/wsdls/Rastro_schema1.xsd' 'https://webservice.correios.com.br/service/rastro/Rastro_schema1.xsd' diff --git a/correios/wsdls/Rastro.wsdl b/correios/wsdls/Rastro.wsdl index 4812bbe..c8d1126 100644 --- a/correios/wsdls/Rastro.wsdl +++ b/correios/wsdls/Rastro.wsdl @@ -5,6 +5,10 @@ + + + + @@ -13,10 +17,6 @@ - - - -