CLI Utilities, Webhook Tunneling, and Playwright Testing
Setting up local development webhook tunnels using ngrok or Cloudflare, and running automated Playwright end-to-end browser tests.
1. Overview & Business Value#
This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for CLI Utilities, Webhook Tunneling, and Playwright Testing within SmartERP.
Testing external webhooks (such as Telebirr and Chapa payment callbacks) requires public HTTPS tunneling to local development ports.
Running Playwright Browser Tests#
# Execute headless browser regression suite
python3 -m pytest tests/e2e/test_checkout_flow.py --headed=False
{screenshot:cli-tunneling-and-testing-utilities-overview-dashboard}
2. Prerequisites & Security Access Groups#
- Required Modules:
base, web, smarterp_core - Security Groups:
Enterprise Developer(Technical ID:base.group_no_one)System Administrator(Technical ID:base.group_system)
- Master Data Dependencies: Established local development toolchain (Python 3.12+, PostgreSQL 16), cloned repository (
smarterp-platform), and valid database configuration.
3. Step-by-Step Configuration & Execution#
Step 1: Navigating to the Module Interface#
- Open your terminal or development environment in the repository root (
/Users/danielbekele/smarterp-platform). - Activate your dedicated Python virtual environment.
- Verify Git branch status:
git status.
{screenshot:cli-tunneling-and-testing-utilities-app-switcher-navigation}
Step 2: Creating and Parameterizing Records#
- Execute development commands or scaffolding templates.
- Define mandatory manifest parameters:
- name (Mandatory): Descriptive module title.
- version (Mandatory): Standard semantic versioning (e.g.
19.0.1.0.0). - depends (Mandatory): Explicit list of upstream module dependencies.
- license (Mandatory): Open source or proprietary enterprise license identifier.
- Configure optional parameters: data files, security ACLs, and automated test cases.
{screenshot:cli-tunneling-and-testing-utilities-record-creation-form}
Step 3: Validating and Processing Transactions#
- Execution & Testing: Run unit tests via
odoo-bin -i <module_name> --test-enable --stop-after-init. - Quality Verification: Ensure test suite passes with zero errors and zero unhandled warnings.
{screenshot:cli-tunneling-and-testing-utilities-transaction-processing-state}
4. Advanced Configuration Points#
- Automated Actions & Scheduled Tasks (Crons):
Developer: Module test runner trigger(base.ir_cron_run_tests)System: Automated cache cleanup(base.ir_cron_cache_cleanup)
- Custom Print Templates & Reports:
- Technical Data Dictionary Specification
- Code Quality & Test Coverage Dossier
- Multi-Company Rules: Record-level security isolation under Company 1 (
Ashewa Technology Solutions S.C.).
5. Comprehensive Troubleshooting Matrix#
| Error Symptom / Exception | Probable Root Cause | Corrective Action / Resolution |
|---|---|---|
ImportError: cannot import name from odoo | Outdated virtualenv or PYTHONPATH misconfiguration. | Re-activate virtualenv and verify that Odoo 19 libraries are correctly installed. |
ParseError: Element '<tree>' is deprecated | Attempting to use legacy Odoo tree view syntax in Odoo 19. | Replace <tree> with <list> in the view XML definition. |
ValidationError: External ID not found | Manifest data list contains an item before its prerequisite is loaded. | Re-order XML filenames in __manifest__.py so security and parent menus load first. |