跳到正文
cccskills
免费在 GitHub 公开

odoo-test-writer

Create and improve Odoo custom module tests using the Odoo test framework. Use when the user asks to add tests, create TransactionCase/HttpCase tests, test Odoo business logic, mock external APIs, use Form helper, test access rules, test workflows, or improve Odoo test coverage.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(3)

  • SKILL.md3.5 KB
  • ODOO-TESTING-EXAMPLES.md7.4 KB
  • ODOO-TESTING-SOP.md7.4 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Odoo Test Writer

Use this skill to add practical tests for Odoo custom modules. Prefer tests at the Odoo behavior seam: ORM flows, constraints, computes, access rules, controllers, reports, forms, workflows, and integration boundaries.

First Move

Before writing tests:

  • Identify the addon/module and target Odoo version.
  • Inspect __manifest__.py, models/, views/, security/, controllers/, report/, static/src/, existing tests/, and relevant docs.
  • If $ODOO_SOURCE is set, inspect local test helpers and framework behavior instead of guessing.

Choose The Test Type

  • Use TransactionCase for most model/business-logic tests. Each test runs in a savepoint and rolls back.
  • Use AccountTestInvoicingCommon for accounting tests needing companies, products, partners, taxes, journals, or invoices.
  • Use Form helper when testing default values, onchanges, form validations, One2many/Many2many form behavior, or user-like form flows.
  • Use HttpCase for browser, tour, website, portal, controller, or full UI flows.
  • Use SingleTransactionCase only for read-only suites or expensive setup where cross-test state is acceptable.
  • Use unittest.mock.patch/MagicMock for external APIs, payment gateways, OAuth, webhooks, file system, time, or slow services. Do not mock Odoo internals unless there is no better seam.

Required Structure

your_module/
├── __init__.py              # Do not import tests here
├── __manifest__.py
├── tests/
│   ├── __init__.py          # Import test modules here
│   ├── common.py            # Optional shared fixtures/helpers
│   └── test_*.py            # Test files

Every new test_*.py must be imported from tests/__init__.py, or the Odoo test runner will not discover it.

Writing Workflow

  1. Map the behavior to prove and the smallest Odoo seam that proves it.
  2. Add or update tests/common.py only for reusable fixtures/helpers.
  3. Create fresh mutable records inside each test unless immutable setup belongs in setUpClass.
  4. Use Arrange, Act, Assert sections in test method body.
  5. Test happy path, validation/error path, and relevant side effects.
  6. For access/security changes, test realistic users/groups/companies with with_user().
  7. For external integrations, patch the boundary where it is used, then assert both state changes and mock calls.
  8. For performance-sensitive code, add assertQueryCount when supported by the target version/test base.
  9. Update tests/__init__.py and manifest dependencies only when evidence requires it.
  10. For OWL components, services, registries, and field widgets, compose with odoo-web-testing and its OWL-TESTING.md reference.

Tags

Default pattern for post-install module tests:

from odoo.tests import tagged

@tagged("post_install", "-at_install")
class TestYourFeature(YourModuleTestCommon):
    pass

References

  • See ODOO-TESTING-SOP.md for the SOP, terminology, tags, and troubleshooting.
  • See ODOO-TESTING-EXAMPLES.md for ready-to-adapt test patterns.
  • Compose with odoo-code-tracer when you need to trace the behavior before writing tests.
  • Compose with odoo-code-review when reviewing test coverage or test quality.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

grill-me

免费

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when the user wants to stress-test a plan, get grilled on their design, or mentions "grill me" outside an Odoo-specific context.

中文简介正在准备中。当前显示原文说明。

mart337i/odoo-skills592026年10月2日 更新

Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when the user wants to stress-test a plan against their project's language and documented decisions.

中文简介正在准备中。当前显示原文说明。

mart337i/odoo-skills592026年10月2日 更新

Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.

中文简介正在准备中。当前显示原文说明。

mart337i/odoo-skills592026年10月2日 更新

odoo

免费

Odoo engineering workflows for addon development, codebase exploration, debugging, architecture/refactor review, manifest/docs sync, and routing to migration work. Use when the user mentions Odoo, addons, modules, manifests, models, XML views, security CSVs, record rules, Odoo shell, OWL/QWeb/assets, or when an Odoo codebase is detected.

中文简介正在准备中。当前显示原文说明。

mart337i/odoo-skills592026年10月2日 更新

odoo-17.0

免费

Odoo 17 development reference for Python models and ORM (search, domain, read_group, compute fields), XML/CSV data and views, OWL/JS client code, QWeb reports, security (ACL, record rules, groups), cron and server actions, migrations and module upgrades, tests, i18n, and performance. Use this skill whenever work involves Odoo 17 or custom addons, including traceback diagnosis, addons, manifests, XML errors, HTTP controllers, business rules, feature work, refactoring, or reviews.

中文简介正在准备中。当前显示原文说明。

mart337i/odoo-skills592026年10月2日 更新

odoo-18.0

免费

Odoo 18 development reference for Python models and ORM (search, domain, read_group, compute fields), XML/CSV data and views, OWL/JS client code, QWeb reports, security (ACL, record rules, groups), cron and server actions, migrations and module upgrades, tests, i18n, and performance. Use this skill whenever work involves Odoo 18 or custom addons, including traceback diagnosis, addons, manifests, XML errors, HTTP controllers, business rules, feature work, refactoring, or reviews.

中文简介正在准备中。当前显示原文说明。

mart337i/odoo-skills592026年10月2日 更新

查看 mart337i 的全部技能

报告此技能的问题