Skip to main content

Odoo RPC client

Project description

s6r-odoo

Installation

    pip install s6r-odoo

Usage

from s6r_odoo import OdooConnection

odoo = OdooConnection(url='http://odoo.localhost',
                          dbname='odoo',
                          user='admin',
                          password='admin')
res_partner = odoo.model('res.partner')
partner_ids = res_partner.search([],  fields=['name', 'email'])
for partner_id in partner_ids:
    print(f'{partner_id.name} : {partner_id.email}')

JSON-2 API (Odoo 19+)

Starting with Odoo 19, the library uses the JSON-2 API instead of XML-RPC. The password parameter must be an API key (not a user password).

from s6r_odoo import OdooConnection

odoo = OdooConnection(url='https://myodoo.example.com',
                          dbname='mydb',
                          user='admin',
                          password='your_api_key_here',
                          version=19)

For Odoo versions < 19, the library continues to use XML-RPC with the user password as before.

Generating an API key

API keys can be created from the Odoo web interface: Settings > Users > Select user > API Keys tab > New API Key

How it works

XML-RPC (Odoo <= 18) JSON-2 (Odoo >= 19)
Endpoint /xmlrpc/2/object /json/2/<model>/<method>
Auth uid + password per call Authorization: bearer <api_key> header
Database Passed in every call X-Odoo-Database header
Arguments Positional Named (JSON body)

All existing methods (search, read, write, create, unlink, load, fields_get, read_group, etc.) work transparently with both protocols.

Testing in local environment

Setup environment

To run the tests locally, first install pytest in your venv

pip install --upgrade pytest pytest-env
# pytest-env is an optional package to handle .env variables

Then from the repository root directory, install the s6r-odoo module in editable mode in your venv:

pip install -e ./

Edit /tests/pytest.ini to setup the tests config file

[pytest]
log_cli=true
log_level=WARNING
;WARNING produces a very nice and readable output, use DEBUG or INFO if you need to catch odoo-configurator logs or test logs 
log_format = %(asctime)s %(levelname)s %(message)s
log_date_format = %Y-%m-%d %H:%M:%S
env =
    ODOO_V16_PASSWORD=
    ODOO_V17_PASSWORD=
    ODOO_V18_PASSWORD=
    ODOO_V19_API_KEY=
; You need to fill these password/api_key env variables

For now, this is where we manage the passwords to access testing Odoo instances.

Run the tests

Go to the /tests directory cd tests, then just run:

pytest

If you are using Pycharm, this article explains in details the configuration: https://pytest-with-eric.com/integrations/pytest-pycharm-integration/#Configuring-PyCharm-for-Pytest-Optional

License

This project is licensed under the GNU Lesser General Public License (LGPL) Version 3.

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.

Contributors

Maintainer

This software is maintained by Scalizer.

Scaliser

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

s6r_odoo-2.3.1.tar.gz (31.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

s6r_odoo-2.3.1-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

File details

Details for the file s6r_odoo-2.3.1.tar.gz.

File metadata

  • Download URL: s6r_odoo-2.3.1.tar.gz
  • Upload date:
  • Size: 31.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for s6r_odoo-2.3.1.tar.gz
Algorithm Hash digest
SHA256 6b5361da528c463a467088a99cf719170cb0c208bcbe2a6da7c3f9717e70316b
MD5 7a655732f1dd3a3858fbcb8d3dbee5b8
BLAKE2b-256 ed8ac18b636c69398035d37f362402e72eee5a75b59164fc6790b6dc84838a6f

See more details on using hashes here.

File details

Details for the file s6r_odoo-2.3.1-py3-none-any.whl.

File metadata

  • Download URL: s6r_odoo-2.3.1-py3-none-any.whl
  • Upload date:
  • Size: 24.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for s6r_odoo-2.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 81d6e8ce89aa40d1e316fe487f08c5e6ad30e387a5135933cabf5208e99bcd10
MD5 65b161e7ecd494961f4149668630514f
BLAKE2b-256 d93ba0c241c362441d8f6e598cece8405b41bd7a881ef03a1f036159a98eca7e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page