跳转到主要内容

Correos PreRegistro SOAP API的Python包装器

项目描述

pipeline status coverage report

:warning: 进行中 :warning

此库是访问PreregistroEnvio Correos SOAP API的Python包装器。

您可以在此处找到API的完整文档。

操作

  • PreRegistroEnvio - 客户将提供所有必要的发货预登记数据,并将收到预登记的发货代码和标签,以在请求的格式(XML或base64编码的PDF格式)中对货物进行标记

安装

$ pip install correos-preregistro

配置环境

用法

创建PreRegistroEnvio发货

创建一个preregistroenvio并将带有发货编号的文件保存为文件名,并使用PDF标签作为内容

>>> from correos_preregistro.services.shipment import PreRegistrationShipment
>>> user = "utest"
>>> password = "ptest"
>>> client = RawClient(user, password)
>>> receiver = Receiver(
...     name="Emilio Jose",
...     surname="Marti Gomez",
...     address="Cami del corrar, 51, Baix B",
...     city="Moralla",
...     state="Valencia",
...     zip="03015",
...     phone="666555444",
...     email="emilio.jose@marti.com",
...     lang="CA",
...     sms_phone="666555444",
... )
>>> sender = Sender(
...     name="SomConnexio",
...     nif="F66380676",
...     address="C/ de les Moreres, 119",
...     city="El Prat de Llobregat",
...     state="Barcelona",
...     zip="08820",
...     phone="931311728",
...     email="serveis@somconnexio.coop",
...     lang="CA",
... )
>>> package = Package(
...     weight=1,
...     postage_type="FP",
...     product_code="S0132",
...     delivery_modality="ST",
...     weight_type="R",
        )
>>> shipment = PreRegistrationShipment.create(
...     client=client,
...     code="XXX1",
...     receiver=receiver,
...     sender=sender,
...     package=package,
... )
>>> shipment.shipment_code
"PQXXX10721392610108021C"
>>> label_file_name = "shipment_label_{}.pdf".format(shipment.shipment_code)
>>> f = open(shipment.get_pdf_label(), "wb")
>>> f.write(pdf_label)
>>> f.close()

开发

设置环境

  1. 安装pyenv
curl https://pyenv.run | bash
  1. 构建Python版本
pyenv install  3.7.13
  1. 创建一个virtualenv
pyenv virtualenv 3.7.13 correos-preregistro
  1. 安装依赖项
pyenv exec pip install -r requirements.txt
  1. 安装pre-commit钩子
pyenv exec pre-commit install

以开发模式本地安装包

当我们在这个包的其他项目中使用它时,我们需要将其安装到其他文件中。以开发模式安装包可以帮助我们修改包并在其他项目中使用新版本。

pip install -e .

测试HTTP请求

我们使用Pytest的HTTP录制插件: pytest-recording

使用VCR,我们可以捕获HTTP响应,然后使用它们执行测试。

添加新测试

  • 公开所需的envvars。在配置环境部分中查找它们
  • 使用pytest命令执行测试
  • 如果您正在编写一个新的进行请求的测试,您应该运行
$ pytest --record-mode=once path/to/your/test
  • 您可能需要记录特定测试的请求。在这种情况下,请确保只运行受影响的测试并运行
$ pytest --record-mode=rewrite path/to/your/test
  • 将新的cassetes添加到提交中并推送。
  • CI使用cassetes在测试中模拟HTTP响应。

运行测试套件

$ tox

格式化

我们使用Black作为格式化工具。首先提交,运行black命令

$ black .
All done! ✨ 🍰 ✨
29 files left unchanged.

更深层次的

Black是一个很好的格式化工具,但为了在没有执行black命令的情况下维护您的代码,您可以将IDE配置为在保存文件时使用darker来格式化更改的或添加的代码。

发布过程

按照以下步骤更新CHANGELOG.md

  1. 添加任何合并请求中缺少的条目。
  2. 复制[Unreleased]标题。
  3. 将第二个Unreleased替换为版本号和当前日期。请从以前的版本复制确切的格式。

然后,您可以发布并将包发布到PyPi

  1. __init__.py中更新__version__变量,使其与CHANGELOG中指定的版本匹配。
  2. 为团队批准打开一个包含这些更改的合并请求。
  3. 合并它,在合并提交上添加一个git标签并将其推送。
  4. 一旦管道成功通过,您的包就已经发布。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

correos-preregistro-0.0.6.tar.gz (7.3 kB 查看哈希值)

上传时间:

构建分布

correos_preregistro-0.0.6-py2.py3-none-any.whl (10.0 kB 查看哈希值)

上传时间: Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面