Release Tests
- Author: frappe
- Repository: https://github.com/frappe/release_tests
- GitHub stars: 0
- Forks: 0
- License: MIT
- Category: Other
- Maintenance: Actively Maintained
Install Release Tests
bench get-app https://github.com/frappe/release_tests
Add the Frappe Gems badge to your README
Maintain Release Tests? Paste this into your README:
[](https://frappegems.com/gems/apps/frappe/release_tests)
About Release Tests
release_tests
External HTTP release-test harness for Frappe sites. Given a running site, it logs in over the REST API and exercises a defined set of flows per installed app, adapting to whatever version is present (develop / v16 / v15), then reports pass/fail per app and step.
It is a standalone client — not a Frappe app installed on the site. It only speaks HTTP, so the same harness runs against a local bench site today and a remote / press-deployed site tomorrow with no change.
Why
Frappe ships many app releases monthly, and regressions — including cross-app breakage (e.g. CRM or India-compliance changes breaking ERPNext) — are often catchable by simple release flows: log in, create master data, push one transaction through. This tool automates exactly that across versions.
Install
uv venv && uv pip install -e ".[dev]" # dev extras add pytest/responses/ruff
Configure targets
Copy the example and fill in credentials (the real file is gitignored):
cp targets.example.toml targets.toml
export RELEASE_ADMIN_PW='...' # values like "$RELEASE_ADMIN_PW" resolve from env
Each [[target]] is one site: a URL plus either login (username/password) or
token (API key/secret) auth. The client sends an explicit Host header so
local multi-tenant bench sites route correctly.
Use
release-tests list-suites # registered suites
release-tests detect --target v16-local # installed apps + versions
release-tests run --target v16-local # run all applicable suites
release-tests run --target all --suite erpnext
run prints a per-target table, writes a JSON report to results/, and exits
non-zero if any step failed (CI-friendly). Suites whose app isn't installed are
skipped automatically.
Suites
| Suite | App | Status |
|---|---|---|
core_frappe |
frappe | login, whoami, ToDo CRUD round-trip |
erpnext (+ erpnext_*) |
erpnext | masters → submit Sales Invoice → Payment Entry → settled; selling/buying/stock/accounts/service/serialised/batched/manufacturing |
hrms (+ hrms_*) |
hrms | Employee, org, leave, expense flows |
crm |
crm | create Lead → Deal → Customer |
india_compliance |
india_compliance | GST masters → GST Sales Invoice → best-effort e-invoice |
insights |
insights (+erpnext) | Workbook → query on Sales Invoice → charts → dashboard |
helpdesk |
helpdesk | create Agent → open Ticket |
webshop |
webshop | publish Website Item → top-bar link → item page loads |
builder |
builder | author page (hero + cards) → publish → page loads |
learning, ksa_compliance |
respective | stub — gated reachability probe; fill in real flows |
helpdesk,webshop, andbuilderare written against each app's schema but not yet validated end-to-end here (those apps weren't installable in the dev bench). Every suite auto-skips when its app is absent, so they're exercised on the first target that has the app.
Adding / extending a suite
Subclass ReleaseSuite, set name + required_app, and return ordered Steps
from build_steps. Steps share a context dict so later steps reuse earlier
records. Use the idempotent helpers in release_tests/factories.py. For
version-specific behavior, branch with gating.at_least(versions, app, "16").
Testing the harness
uv run pytest # fully mocked — no live site required
Roadmap
- v2 ERPNext: full Quotation → Sales Order → Delivery Note → Sales Invoice → Payment → reconciliation chain.
- Press path: provision a site + install an app set, then feed its URL in as a runtime target — the runner already accepts arbitrary target URLs.
- Flesh out the stub suites as those apps become available to test against.
Related Other apps for Frappe & ERPNext
- Erpnext — Free and Open Source Enterprise Resource Planning (ERP)
- Helpdesk — Modern, Streamlined, Free and Open Source Customer Service Software
- Print Designer — Visual print designer for Frappe / ERPNext
- Ctr — CTR模型代码和学习笔记总结
- Whitelabel — Whitelabel ERPNext
- Fossunited — fossunited.org
- Helm — Helm Chart Repository for Frappe/ERPNext
- Frappe Attachments S3 — A frappe app to upload file attachments in doctypes to s3.