odoo-test-helper
Our Odoo project tools
Decision gist · record as of 2026-08-14
Yes, if you are writing tests for Odoo modules. The package solves a real testing problem with low friction and no external dependencies. The Pre-Alpha status and small community (13 stars) suggest caution for mission-critical projects, but active maintenance and real-world use in OCA and Shopinvader projects indicate stability for its intended purpose. LGPLv3+ licensing is standard for OCA projects and poses no barrier to open-source Odoo development.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Odoo framework and Python 3.8+; fake model classes must be imported after backup_registry() is called to avoid registration conflicts.
- Low installation friction with no runtime dependencies.
- Active maintenance as of 2026-05-26, though marked Pre-Alpha in development status.
License · maintenance · safety
copyleft license (copyleft) — Licensed under LGPLv3+, a copyleft license requiring derivative works to be distributed under the same terms; suitable for open-source projects but may constrain proprietary use.
last release 2026-02-20 (175 days) · last repo commit 2026-05-26 · 13 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 238,148 downloads/mo, #8,946 on PyPI
Alternatives
Verify before relying
from odoo.tests import SavepointCase
from odoo_test_helper import FakeModelLoader
class MyTest(SavepointCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.loader = FakeModelLoader(cls.env, cls.__module__)
cls.loader.backup_registry()
from .models import FakeModel
cls.loader.update_registry((FakeModel,))
@classmethod
def tearDownClass(cls):
cls.loader.restore_registry()
super().tearDownClass()- Whether the package works with all current Odoo versions or only specific major versions
- Performance characteristics when managing large numbers of fake models in test suites
What it is and what it does
odoo-test-helper is a testing utility library for Odoo that simplifies the creation and management of fake test-only models. It solves the problem of testing abstract Odoo modules without needing to create separate test modules or use real production models. The library provides a FakeModelLoader class that handles the complex task of registering temporary models into Odoo's registry during tests and cleanly removing them afterward.
The package is designed for developers writing Odoo module tests who need isolated, test-specific model definitions. It manages the timing and order of model registration to avoid conflicts with Odoo's own model loading process, requiring that fake model imports happen after a backup of the registry is taken. With no external runtime dependencies and active maintenance, it integrates directly into Odoo's SavepointCase test framework.
Use it for
- Testing abstract Odoo modules by defining minimal fake models that inherit from the abstract base without creating a full test module.
- Isolating unit tests by loading test-only model definitions that don't pollute the production registry.
- Verifying model behavior in connector or search-engine modules that depend on custom model implementations.
- Avoiding the overhead of creating separate test modules when you need temporary model implementations for a single test class.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are writing tests for Odoo modules.
The package solves a real testing problem with low friction and no external dependencies. The Pre-Alpha status and small community (13 stars) suggest caution for mission-critical projects, but active maintenance and real-world use in OCA and Shopinvader projects indicate stability for its intended purpose. LGPLv3+ licensing is standard for OCA projects and poses no barrier to open-source Odoo development.
Install
odoo-test-helper on PyPI
Before you install
Low installation friction with no runtime dependencies. Active maintenance as of 2026-05-26, though marked Pre-Alpha in development status.
Requires Odoo framework and Python 3.8+; fake model classes must be imported after backup_registry() is called to avoid registration conflicts.
License in practice
Licensed under LGPLv3+, a copyleft license requiring derivative works to be distributed under the same terms; suitable for open-source projects but may constrain proprietary use.
Quickstart
from odoo.tests import SavepointCase
from odoo_test_helper import FakeModelLoader
class MyTest(SavepointCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.loader = FakeModelLoader(cls.env, cls.__module__)
cls.loader.backup_registry()
from .models import FakeModel
cls.loader.update_registry((FakeModel,))
@classmethod
def tearDownClass(cls):
cls.loader.restore_registry()
super().tearDownClass()
Verify before relying
- Whether the package works with all current Odoo versions or only specific major versions
- Performance characteristics when managing large numbers of fake models in test suites
Package facts
| License | copyleft license copyleft |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 175 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 238,148 / month, #8,946 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 2 - Pre-AlphaFramework :: OdooIntended Audience :: DevelopersLicense :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)Natural Language :: EnglishProgramming Language :: Python :: 3 |
Evidence: odoo_test_helper-2.1.3-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “odoo testing utilities”
- odoo-test-helperProvides utilities for writing Odoo tests, particularly for loading…
- pytest-odoopytest-odoo is a pytest plugin that runs Odoo addon tests using…
- pylint-odooA Pylint plugin that adds Odoo-specific code quality checks to…
Give your agent the search over MCP, or paste the wish link into any chat.
More Testing packages
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
virtualenv creates isolated Python environments where packages can be installed independently without affecting the system Python or other projects.
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
pytest-asyncio is a pytest plugin that enables writing and running async test functions using the asyncio library, allowing developers to await code directly within test cases.
Install it if you write tests for any asyncio-based code.
A pytest plugin that generates test reports in Common Test Report Format (CTRF) as JSON, compatible with pytest-xdist and pytest-playwright for distributed and browser-based testing.
Install it if you need CTRF-formatted test output for CI/CD integration or cross-tool reporting.
See also openupgradelib · pylint-odoo · pytest-odoo · setuptools-odoo · autofaker · whool · manifestoo-core · pytest-helpers-namespace · django-mock-queries · pyfakefs