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.
- GitHub Repository: ScalizerOrg/s6r-odoo
Contributors
Maintainer
This software is maintained by Scalizer.
Metadata
Release files for s6r-odoo 2.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| s6r_odoo-2.3.1.tar.gz | 31.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| s6r_odoo-2.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 56.2 kB
Release files / s6r_odoo-2.3.1.tar.gz
| Download URL | s6r_odoo-2.3.1.tar.gz |
|---|---|
| Size | 31.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6b5361da528c463a467088a99cf719170cb0c208bcbe2a6da7c3f9717e70316b
|
|
BLAKE2b-256 checksum How to use checksums |
ed8ac18b636c69398035d37f362402e72eee5a75b59164fc6790b6dc84838a6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / s6r_odoo-2.3.1-py3-none-any.whl
| Download URL | s6r_odoo-2.3.1-py3-none-any.whl |
|---|---|
| Size | 24.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
81d6e8ce89aa40d1e316fe487f08c5e6ad30e387a5135933cabf5208e99bcd10
|
|
BLAKE2b-256 checksum How to use checksums |
d93ba0c241c362441d8f6e598cece8405b41bd7a881ef03a1f036159a98eca7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|