odoo-test-writing

odoo-test-writing is a skill for Claude Code from Viindoo/odoo-mcp-client. It costs 21 tokens per session (3,842 once invoked), scanned A, original, MIT.

A test-writing guide for Odoo that creates executable Python and JavaScript tests for business behavior across Odoo versions. It can also adapt existing tests between major versions.

In plain words
What is it for?
Use it to write Odoo model, form, browser-related, and lightweight performance tests, or to translate tests for another Odoo version.
Why use it?
It helps teams test whether business rules still work, instead of merely matching the current code or a snapshot. It also reduces the manual work of choosing the right Odoo test framework and updating older tests.

Skill for Claude Code

Written for Claude Code: argument-hint in frontmatter. Also seen: model in frontmatter.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the odoo-ai-agents plugin — 50 skills, 8 commands, 23 agents, 8 hooks, 3 MCP servers shipped together

Good fit Use it to write Odoo model, form, browser-related, and lightweight performance tests, or to translate tests for another Odoo version.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add Viindoo/odoo-mcp-client
Claude Code
/plugin install odoo-ai-agents

Made for: Claude Code.

Or install odoo-ai-agents, the plugin that ships this one along with the rest of its 50 skills, 8 commands, 23 agents, 8 hooks, 3 MCP servers.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for odoo-test-writing

README.md
[![agentmods](https://agentmods.dev/badge/skills/viindoo/odoo-mcp-client/odoo-test-writing/github.svg)](https://agentmods.dev/skills/viindoo/odoo-mcp-client/odoo-test-writing)
Your own site
<a href="https://agentmods.dev/skills/viindoo/odoo-mcp-client/odoo-test-writing"><img src="https://agentmods.dev/badge/skills/viindoo/odoo-mcp-client/odoo-test-writing/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for odoo-test-writing

Your own site · 80×15
<a href="https://agentmods.dev/skills/viindoo/odoo-mcp-client/odoo-test-writing"><img src="https://agentmods.dev/badge/skills/viindoo/odoo-mcp-client/odoo-test-writing.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 21 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,842 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00021 $0.03842
Opus 5.5 $0.00008 $0.01537
Sonnet 5.5 $0.00004 $0.00768
Haiku 4.5 $0.00002 $0.00384

Measured 7d ago against content hash f507b41a244c, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

odoo-test-writing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/odoo-ai-agents/skills/odoo-test-writing/SKILL.md · 216 lines

How it starts

The opening of the file, as written. The whole thing — 216 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Role

Write automated Odoo tests for every supported series. Every test asserts a business contract, never a snapshot of the current implementation, and the contract obeys ${CLAUDE_PLUGIN_ROOT}/snippets/odoo-platform-design-principles.md § 0: a policy limit is asserted to flag and allow, a refusal only for data integrity, a guard together with its way out.

Out of Scope

  • Static review of existing tests -> odoo-code-review
  • Writing the production code under test -> odoo-coding; a break alters production code only until you restore it
  • Debugging a test that fails at runtime -> odoo-debug; upgrade-safety audit -> odoo-deprecation-audit
  • Running the module suite or a tour/HttpCase suite -> odoo-instance via NEEDS_NEXT; this skill runs only its own baseline and break runs. A full load/stress harness -> odoo-perf-audit.

When to use

odoo-coder invokes this skill INLINE for its own node - before the code when an acceptance criterion carries a comparable expected value, after the code for a behaviour discovered while coding (proven by the break in step 5). The odoo-test-writer agent invokes it for every other caller.

  • change - new or adjusted tests for the behavior the REQUEST changed.
  • coverage - backfill behavior tests for existing code (odoo-code-review gate).
  • adapt - translate source tests to the target series after the adapt code exists (§ Adapt mode).
  • performance/load - a query-count guard (assertQueryCount / assertQueries) or a bounded time over a seeded volume: a behavior contract, never a benchmark.
  • tour/HttpCase - a JS tour driven by HttpCase.start_tour(...), tagged post-install, for flows needing a real browser; never for pure model logic (TransactionCase / Form) or a mocked JS unit (Hoot).

MCP tools

Pick the right tool first. Odoo Semantic (the odoo-semantic-mcp server) is the INDEXED Odoo source-code knowledge graph: a pre-built graph + vector index of Odoo source across every indexed Odoo version (legacy through latest) and repos/editions, with inheritance, override, and cross-module impact already resolved. It gives AUTHORITATIVE STRUCTURAL facts about how Odoo source IS DEFINED, with no local checkout needed. Unique signature: indexed, cross-version, inheritance-resolved, whole-graph, checkout-free. It is a STATIC index with NO runtime/live data.

This is your PRIMARY, context-efficient source for Odoo source/structure questions - the Odoo codebase is huge and reading it directly burns context, so prefer Odoo Semantic first. Order of precedence: (1) Odoo Semantic available -> use it; (2) available but it lacks the specific detail -> THEN read the source (Read/Grep your checkout) to fill that gap; (3) unavailable -> read the source. Reading code is the FALLBACK, never the first move when Odoo Semantic can answer.

Do NOT use Odoo Semantic for:

  • LIVE DATA / runtime - actual record values, search/read/write real records, executing a method, this instance's installed modules -> use a live Odoo MCP server (one exposing read_record/search_records/execute_method), NOT Odoo Semantic.

Look-live-but-static tools (return indexed source, never runtime data): model_inspect, module_inspect, entity_lookup, validate_domain, validate_depends, validate_relation, describe_module, check_module_exists, resolve_orm_chain. These tool names look like they query a live instance but return indexed source data only. If you need live records, Odoo Semantic is the wrong server.

Read the full file on GitHub · 216 lines

Files

What ships with it

5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 7d ago Changed · -31 lines f507b41a244c
  2. 8d ago Changed · +3 lines a1053c06fb18
  3. 9d ago Changed · +1 lines 1909ead533e5
  4. 17d ago Changed · -4 tokens per session 38a8c26d3bba
  5. 19d ago Changed · +2 lines e01b28b746c4
  6. 20d ago Changed · -6 lines 9f892003c836
  7. 21d ago Changed · +7 lines 7e2d1468ea44
  8. 24d ago Changed · +4 lines 92f795664616
  9. 1mo ago Changed dea8b2186417
  10. 1mo ago First seen · 236 lines · 25 tokens per session scan A 0a88305e7426

Subscribe to this mod's changes

odoo-test-writing is a skill published in the GitHub repository Viindoo/odoo-mcp-client (9 stars, last pushed 2d ago), licensed MIT. It adds 21 tokens to every session and 3,842 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.

Related

odoo-test-writing compared with skills from other repositories

odoo-test-writing next to 6 skills from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
odoo-test-writingViindoo/odoo-mcp-clientSkill92d agoMITA21Claude Code
test-masterJeffallan/claude-skillsSkill12k10d agoMITA104Claude Code
migrate-xunit-to-xunit-v3dotnet/skillsSkill5.9ktodayMITA149Claude Code
go-testingGentleman-Programming/gentle-aiSkill8.7ktodayMITA26Claude Code, Codex
principle-test-behavior-not-implementationmichael-denyer/pstack-claudeSkill4.2ktodayMITA50Claude Code
dart-testdartsim/dartSkill1.2ktodayBSD-2-ClauseA18Claude Code, Codex
test-generatorrshankras/claude-code-apple-skillsSkill879yesterdayMITA33Claude Code