mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Slice 3. `harness.console.run_one(epc, goal_band=...)` wires the full AraFirstRunPipeline against in-memory fakes — no Postgres, no network — runs one property, prints the sense-check table, and returns the Plan for interactive poking from a REPL at the worktree root. Defaults to the committed harness sample catalogue. Refactors the slice-1 integration test to delegate to run_one (dropping ~70 lines of duplicated wiring + the now-unused test catalogue fixture), so it exercises the shipped entrypoint rather than a parallel copy. The new console test covers run_one's print/return contract. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
"""The one-property console entrypoint for interactive sense-checking."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import dataclasses
|
|
|
|
import pytest
|
|
|
|
from datatypes.epc.domain.epc import Epc
|
|
from datatypes.epc.domain.epc_property_data import EpcPropertyData
|
|
from harness.console import run_one
|
|
from tests.domain.sap10_calculator.worksheet._elmhurst_worksheet_000490 import (
|
|
build_epc as _build_uninsulated_cavity_and_floor_epc,
|
|
)
|
|
|
|
|
|
def _uninsulated_lodged_epc() -> EpcPropertyData:
|
|
epc = _build_uninsulated_cavity_and_floor_epc()
|
|
return dataclasses.replace(
|
|
epc,
|
|
energy_rating_current=57,
|
|
current_energy_efficiency_band=Epc.D,
|
|
co2_emissions_current=3.0,
|
|
energy_consumption_current=300,
|
|
)
|
|
|
|
|
|
def test_run_one_returns_a_plan_and_prints_the_table(
|
|
capsys: pytest.CaptureFixture[str],
|
|
) -> None:
|
|
# Arrange
|
|
epc: EpcPropertyData = _uninsulated_lodged_epc()
|
|
|
|
# Act — run one property end-to-end with no database, against the default
|
|
# sample catalogue.
|
|
plan = run_one(epc, goal_band="C")
|
|
|
|
# Assert — a multi-measure Plan came back, and its sense-check table printed.
|
|
assert len(plan.measures) >= 1
|
|
printed: str = capsys.readouterr().out
|
|
assert "Plan SAP" in printed
|
|
assert "cavity_wall_insulation" in printed
|