为SomConnexio的Odoo(使用REST API)提供的Python包装器
项目描述
:warning: 进行中 :warning
此库是访问Somconnexio的Odoo(带有自定义的Odoo v12)的Python包装器。有关自定义的更多信息,请参阅SomConnexio Odoo模块。
资源
- SubscriptionRequest - 客户订单
- CRMLead - 服务订单
- Provider - 服务提供商
- DiscoveryChannel
- Partner - 客户信息
- Contract - 合同信息
- ProductCatalog - 销售产品变体
- CoopAgreement - 合作协议代码
安装
$ pip install odoo-somconnexio-python-client
配置环境
您需要定义Odoo API-KEY和URL作为环境变量。您需要定义
ODOO_BASEURL=<YOUR ODOO HOST>/api
ODOO_APIKEY=<YOUR ODOO API KEY>
如果未定义这些环境变量,将引发一个异常,显示未定义的环境变量名称。有关API-KEY的更多信息,请参阅Auth API Key Odoo模块。
使用方法
按服务搜索提供商
>>> from odoo_somconnexio_python_client.resources.provider import Provider
>>>
>>> mobile_providers = Provider.mobile_list()
>>> mobile_providers[0].id
123
>>> mobile_providers[0].name
"SomConnexió"
通过ref获取合作伙伴
>>> from odoo_somconnexio_python_client.resources.partner import Partner
>>>
>>> partner = Partner.get(1234)
>>> partner.id
123
>>> partner.ref
"1234"
按增值税号搜索合作伙伴
>>> from odoo_somconnexio_python_client.resources.partner import Partner
>>>
>>> partner = Partner.search_by_vat(vat="XXXX")
>>> partner.id
123
>>> partner.ref
"1234"
按合作伙伴的增值税号搜索合同
>>> from odoo_somconnexio_python_client.resources.contract import Contract
>>>
>>> contracts = Contract.search_by_customer_vat(vat="XXXX")
>>> contracts[0].id
123
>>> contracts[0].phone_number
"972445566"
创建新的映射器
创建一个公开具有以下结构的dict对象的类
创建SubscriptionRequest
{
"name": "string",
"email": "string",
"ordered_parts": 0,
"share_product": 0,
"address": {
"street": "string",
"street2": "string",
"zip_code": "string",
"city": "string",
"country": "string",
"state": "string"
},
"lang": "string",
"iban": "string",
"vat": "string",
"coop_agreement": "string",
"voluntary_contribution": 0,
"nationality": "string",
"payment_type": "string"
}
创建CRMLead
{
"iban": "string",
"subscription_request_id": 0,
"partner_id": 0,
"lead_line_ids": [
{
"product_code": "string",
"broadband_isp_info": {
"phone_number": "string",
"type": "string",
"delivery_address": {
"street": "string",
"street2": "string",
"zip_code": "string",
"city": "string",
"country": "string",
"state": "string"
},
"previous_provider": 0,
"previous_owner_vat_number": "string",
"previous_owner_name": "string",
"previous_owner_first_name": "string",
"service_address": {
"street": "string",
"street2": "string",
"zip_code": "string",
"city": "string",
"country": "string",
"state": "string"
},
"previous_service": "string",
"keep_phone_number": true,
"change_address": true
},
"mobile_isp_info": {
"phone_number": "string",
"type": "string",
"delivery_address": {
"street": "string",
"street2": "string",
"zip_code": "string",
"city": "string",
"country": "string",
"state": "string"
},
"previous_provider": 0,
"previous_owner_vat_number": "string",
"previous_owner_name": "string",
"previous_owner_first_name": "string",
"icc": "string",
"icc_donor": "string",
"previous_contract_type": "string"
}
}
]
}
开发
设置环境
- 安装
pyenv
curl https://pyenv.run | bash
- 构建Python版本
pyenv install 3.8.13
- 创建virtualenv
pyenv virtualenv 3.8.13 odoo-somconnexio-python-client
- 安装依赖项
pyenv exec pip install -r requirements-dev.txt
- 安装预提交钩子
pyenv exec pre-commit install
测试HTTP请求
我们使用Pytest的HTTP录制插件:[pytest-recording](https://pytest-vcr.readthedocs.io/)。
使用VCR,我们可以捕获HTTP响应,然后使用它们来执行测试。
要实际调用Odoo本地客户端以创建或重写cassettes,我们需要首先更改conftest.py
文件,并临时提供实际的Odoo API-KEY。
monkeypatch.setenv("ODOO_APIKEY", "<ACTUAL_ODOO_APIKEY>")
⚠️ 不要提交此更改!
添加新测试
- 公开所需的envvars。在配置环境部分查找它们
- 使用
pytest
命令执行测试 - 如果您正在编写一个新的进行请求的测试,您应该运行
$ pytest --record-mode=once path/to/your/test
- 您可能需要为特定的测试记录请求。在这种情况下,请确保只运行受影响的测试并运行
$ pytest --record-mode=rewrite path/to/your/test
- 将新的
cassetes
添加到提交并推送它们。 - CI使用cassetes在测试中模拟HTTP响应。
运行测试套件
$ tox
格式化
我们使用pre-commit来执行Black作为格式化器。
发布流程
按照以下步骤更新CHANGELOG.md
- 添加任何缺失的合并请求条目。
- 复制
[Unreleased]
标题。 - 将第二个
Unreleased
替换为版本号和当前日期。复制从以前的版本中获取的精确格式。
然后,您可以发布并将包发布到PyPi
- 在
__init__.py
中更新__version__
变量,以匹配CHANGELOG中指定的版本。 - 提交一个包含这些更改的合并请求以供团队批准
- 合并它,在合并提交上添加git标签并将其推送。
- 一旦管道成功通过,请批准
发布
步骤。
项目详情
关闭
odoo-somconnexio-python-client-0.1.41.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 234f7215a5d125f3178b52028491b3bf6d8b9cec8b3361133a1e88f214870ed4 |
|
MD5 | 24fa1fedb7c9c17a09c25c6570c0e10f |
|
BLAKE2b-256 | b13f4a29476e994aeca16d604fc3e18aff52593f15cecf3864f7ad2b0d9cba45 |
关闭
odoo_somconnexio_python_client-0.1.41-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 03aa577aed010ffc2b07aa6cdd7553c71c923bc09e51000619cec0352b0aeed5 |
|
MD5 | 9c7d8532eb14e1a93c044ba737bbcc97 |
|
BLAKE2b-256 | 6677c295b828d05fbc2ef484d3d9806d2d724d6f04299506f434800438fe3b83 |