mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-03-30 13:23:41 +00:00
Major restructuring of the scripts/ directory with consistent output
formatting, improved organization, and stricter error handling.
Breaking Changes:
- Updated development environment to Home Assistant 2025.7+
- Removed Python 3.12 compatibility (HA 2025.7+ requires Python 3.13)
- Updated all HA core requirements from 2025.7 requirement files
- Added new dependencies: python-multipart, uv (for faster package management)
- Updated GitHub Actions workflows to use Python 3.13
Changes:
- Created centralized output library (scripts/.lib/output.sh)
- Unified color codes and Unicode symbols
- Consistent formatting functions (log_header, log_success, log_error, etc.)
- Support for embedded formatting codes (${BOLD}, ${GREEN}, etc.)
- Reorganized into logical subdirectories:
- scripts/setup/ - Setup and maintenance scripts
- bootstrap: Install/update dependencies (used in CI/CD)
- setup: Full DevContainer setup (pyright, copilot, HACS)
- reset: Reset config/ directory to fresh state (NEW)
- sync-hacs: Sync HACS integrations
- scripts/release/ - Release management scripts
- prepare: Version bump and tagging
- suggest-version: Semantic version suggestion
- generate-notes: Release notes generation
- check-if-released: Check release status
- hassfest: Local integration validation
- Updated all scripts with:
- set -euo pipefail for stricter error handling
- Consistent SCRIPT_DIR pattern for reliable sourcing
- Professional output with colors and emojis
- Unified styling across all 17 scripts
- Removed redundant scripts:
- scripts/update (was just wrapper around bootstrap)
- scripts/json_schemas/ (moved to schemas/json/)
- Enhanced clean script:
- Improved artifact cleanup
- Better handling of accidental package installations
- Hints for reset and deep clean options
- New reset script features:
- Standard mode: Keep configuration.yaml
- Full mode (--full): Reset configuration.yaml from git
- Automatic re-setup after reset
- Updated documentation:
- AGENTS.md: Updated script references and workflow guidance
- docs/development/: Updated all references to new script structure
Impact: Development environment now requires Python 3.13 and Home Assistant
2025.7+. Developers get consistent, professional script output with better
error handling and logical organization. Single source of truth for styling
makes future updates trivial.
52 lines
1,008 B
Markdown
52 lines
1,008 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/release/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...
|