hass.tibber_prices/tests/services
anthropic-code-agent[bot] 691e917c0a
fix(services): ceil search_start to next quarter when include_current_interval=false
When include_current_interval=False, the search_start was set to the raw
now timestamp (e.g. 14:47:00.167996). The interval pool index iterates in
15-minute steps from that exact value, so keys like 14:47:00, 15:02:00, …
never matched any cached interval (which are always on :00/:15/:30/:45
boundaries), causing no data to be found and returning no_data_in_range.

Fix: replace `now` with `ceil_to_next_quarter_hour(now)` which is always
`floor(now) + 15min`. This skips the interval that is currently in progress
(14:30–14:45 interval) and starts at the first interval that hasn't begun
yet (15:00), consistent with the intent of include_current_interval=False.

Fixes #190

User-Impact: find_cheapest_block/find_most_expensive_block/find_cheapest_hours
with include_current_interval=false and search_scope=next_24h (or no scope)
no longer returns no_data_in_range when data is available.

Agent-Logs-Url: https://github.com/jpawlowski/hass.tibber_prices/sessions/0ea804f9-7c98-4e5a-b40f-469954fa9daa

Co-authored-by: jpawlowski <75446+jpawlowski@users.noreply.github.com>
2026-07-27 16:14:20 +00:00
..
__init__.py feat(services): improve ApexCharts segment visualization and fix header display 2025-12-01 11:14:27 +00:00
test_connect_segments.py refactor(currency)!: rename major/minor to base/subunit currency terminology 2025-12-11 08:26:30 +00:00
test_energy_calculator.py feat(services): add plan_charging service for battery/EV scheduling 2026-04-20 21:43:41 +00:00
test_find_cheapest_schedule_internals.py fix(find_cheapest_schedule): retry valid window start after time gaps 2026-07-04 18:18:42 +00:00
test_find_service_responses.py fix(services): prevent power_profile truncation during relaxation 2026-07-04 18:22:44 +00:00
test_get_chartdata_metadata.py fix(get_chartdata): use proper statistics.median for chart metadata 2026-07-04 18:23:25 +00:00
test_period_data_format.py refactor(currency)!: rename major/minor to base/subunit currency terminology 2025-12-11 08:26:30 +00:00
test_plan_charging.py fix(services): prevent plan_charging overcharge from segment-constraint bridging 2026-07-04 17:43:04 +00:00
test_power_scheduler.py fix(services): prevent plan_charging overcharge from segment-constraint bridging 2026-07-04 17:43:04 +00:00
test_search_range.py fix(services): ceil search_start to next quarter when include_current_interval=false 2026-07-27 16:14:20 +00:00
test_sequential_scheduling.py feat(services): add power-profile-weighted window selection 2026-05-03 22:16:08 +00:00
test_service_helpers.py fix(services): correct min_distance_from_avg direction for negative prices 2026-07-04 18:23:06 +00:00