mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-03-29 21:03:40 +00:00
Home Assistant's hassfest validation requires config flows to be defined in a file named config_flow.py (not a package directory). Changes: - Renamed custom_components/tibber_prices/config_flow/ → config_flow_handlers/ - Created config_flow.py as bridge file re-exporting from config_flow_handlers/ - Updated all import paths across 5 files (user_flow, options_flow, subentry_flow, etc.) - Added ./scripts/hassfest for local validation (JSON/Python syntax, required files) - Added ./scripts/clean with three modes (--minimal, normal, --deep) - Refactored develop/lint/lint-check to use centralized cleanup (DRY principle) - Updated documentation in AGENTS.md and docs/development/ Technical details: - Bridge file uses __all__ exports to maintain clean public API - hassfest script uses ast.parse() for syntax validation (no disk artifacts) - clean --minimal removes .egg-info only (silent, for automated scripts) - Dual pip/uv pip compatibility for package uninstallation Impact: Integration now passes hassfest validation. Local validation available via ./scripts/hassfest before pushing to GitHub. Cleanup logic centralized and DRY across all development scripts.
52 lines
1,000 B
Markdown
52 lines
1,000 B
Markdown
# Testing
|
|
|
|
> **Note:** This guide is under construction.
|
|
|
|
## Integration Validation
|
|
|
|
Before running tests or committing changes, validate the integration structure:
|
|
|
|
```bash
|
|
# Run local validation (JSON syntax, Python syntax, required files)
|
|
./scripts/hassfest
|
|
```
|
|
|
|
This lightweight script checks:
|
|
|
|
- ✓ `config_flow.py` exists
|
|
- ✓ `manifest.json` is valid JSON with required fields
|
|
- ✓ Translation files have valid JSON syntax
|
|
- ✓ All Python files compile without syntax errors
|
|
|
|
**Note:** Full hassfest validation runs in GitHub Actions on push.
|
|
|
|
## Running Tests
|
|
|
|
```bash
|
|
# Run all tests
|
|
pytest tests/
|
|
|
|
# Run specific test file
|
|
pytest tests/test_coordinator.py
|
|
|
|
# Run with coverage
|
|
pytest --cov=custom_components.tibber_prices tests/
|
|
```
|
|
|
|
## Manual Testing
|
|
|
|
```bash
|
|
# Start development environment
|
|
./scripts/develop
|
|
```
|
|
|
|
Then test in Home Assistant UI:
|
|
|
|
- Configuration flow
|
|
- Sensor states and attributes
|
|
- Services
|
|
- Translation strings
|
|
|
|
## Test Guidelines
|
|
|
|
Coming soon...
|