mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-03-30 05:13:40 +00:00
Set up pytest with Home Assistant support and created 6 tests for midnight-crossing period logic (5 unit tests + 1 integration test). Added pytest configuration, test dependencies, test runner script (./scripts/test), and comprehensive tests for group_periods_by_day() and midnight turnover consistency. All tests pass in 0.12s. Impact: Provides regression testing for midnight-crossing period bugs. Tests validate periods remain visible across midnight turnover.
89 lines
2.5 KiB
Bash
Executable file
89 lines
2.5 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# script/clean: Clean up development artifacts and caches
|
|
# Usage:
|
|
# ./scripts/clean # Standard cleanup (recommended)
|
|
# ./scripts/clean --deep # Also remove __pycache__
|
|
# ./scripts/clean --minimal # Only critical issues (.egg-info)
|
|
|
|
set -e
|
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
MINIMAL_MODE=false
|
|
DEEP_MODE=false
|
|
|
|
if [ "$1" = "--minimal" ]; then
|
|
MINIMAL_MODE=true
|
|
elif [ "$1" = "--deep" ]; then
|
|
DEEP_MODE=true
|
|
fi
|
|
|
|
if [ "$MINIMAL_MODE" = "false" ]; then
|
|
echo "==> Cleaning development artifacts..."
|
|
fi
|
|
|
|
# Clean up accidental package installation (always, even in minimal mode)
|
|
if [ -d "tibber_prices.egg-info" ]; then
|
|
if [ "$MINIMAL_MODE" = "false" ]; then
|
|
echo " → Removing tibber_prices.egg-info"
|
|
fi
|
|
rm -rf tibber_prices.egg-info
|
|
fi
|
|
|
|
# Uninstall if accidentally installed (always, even in minimal mode)
|
|
# Try both pip and uv pip for maximum compatibility
|
|
PACKAGE_INSTALLED=false
|
|
if pip show tibber_prices >/dev/null 2>&1 || uv pip show tibber_prices >/dev/null 2>&1; then
|
|
PACKAGE_INSTALLED=true
|
|
if [ "$MINIMAL_MODE" = "false" ]; then
|
|
echo " → Uninstalling accidentally installed package"
|
|
fi
|
|
# Use regular pip (cleaner output, always works in venv)
|
|
pip uninstall -y tibber_prices >/dev/null 2>&1 || true
|
|
# Also try uv pip as fallback
|
|
uv pip uninstall tibber_prices >/dev/null 2>&1 || true
|
|
fi
|
|
|
|
# Exit early if minimal mode
|
|
if [ "$MINIMAL_MODE" = "true" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
# Clean pytest cache
|
|
if [ -d ".pytest_cache" ]; then
|
|
echo " → Removing .pytest_cache"
|
|
rm -rf .pytest_cache
|
|
fi
|
|
|
|
# Clean coverage files
|
|
if [ -f ".coverage" ]; then
|
|
echo " → Removing .coverage"
|
|
rm -f .coverage
|
|
fi
|
|
if [ -f "coverage.xml" ]; then
|
|
echo " → Removing coverage.xml"
|
|
rm -f coverage.xml
|
|
fi
|
|
|
|
# Clean ruff cache
|
|
if [ -d ".ruff_cache" ]; then
|
|
echo " → Removing .ruff_cache"
|
|
rm -rf .ruff_cache
|
|
fi
|
|
|
|
# Optional: Clean __pycache__ (normally not needed, but useful for troubleshooting)
|
|
if [ "$DEEP_MODE" = "true" ]; then
|
|
echo " → Deep clean: Removing all __pycache__ directories"
|
|
find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
|
|
echo " → Deep clean: Removing all .pyc files"
|
|
find . -type f -name "*.pyc" -delete 2>/dev/null || true
|
|
fi
|
|
|
|
echo ""
|
|
echo "==> Cleanup complete!"
|
|
if [ "$DEEP_MODE" = "false" ]; then
|
|
echo ""
|
|
echo "Tip: Use './scripts/clean --deep' to also remove __pycache__ directories"
|
|
echo " (normally not needed - __pycache__ speeds up Home Assistant startup)"
|
|
fi
|