Files
timmy-home/tests/test_lab_007_grid_power_packet.py
Alexander Whitestone c46caefed5
Some checks failed
Smoke Test / smoke (pull_request) Failing after 25s
feat: prepare LAB-007 utility estimate packet (#532)
2026-04-15 01:03:12 -04:00

70 lines
2.8 KiB
Python

from pathlib import Path
import importlib.util
import unittest
ROOT = Path(__file__).resolve().parents[1]
SCRIPT_PATH = ROOT / "scripts" / "lab_007_grid_power_packet.py"
DOC_PATH = ROOT / "docs" / "LAB_007_GRID_POWER_REQUEST.md"
def load_module(path: Path, name: str):
assert path.exists(), f"missing {path.relative_to(ROOT)}"
spec = importlib.util.spec_from_file_location(name, path)
assert spec and spec.loader
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
return module
class TestLab007GridPowerPacket(unittest.TestCase):
def test_packet_marks_missing_site_fields_and_uses_eversource_as_primary(self):
mod = load_module(SCRIPT_PATH, "lab_007_grid_power_packet")
packet = mod.build_packet({})
self.assertEqual(packet["primary_utility"]["name"], "Eversource")
self.assertIn("Lempster", packet["territory_evidence"])
self.assertFalse(packet["ready_to_contact"])
self.assertIn("site_address", packet["missing_fields"])
self.assertIn("pole_distance_feet", packet["missing_fields"])
self.assertIn("terrain_description", packet["missing_fields"])
def test_packet_with_site_details_builds_contact_ready_email_and_call_checklist(self):
mod = load_module(SCRIPT_PATH, "lab_007_grid_power_packet")
packet = mod.build_packet(
{
"site_address": "123 Example Rd, Lempster, NH",
"pole_distance_feet": 280,
"terrain_description": "mixed woods, uphill grade, likely overhead run",
"service_size": "200A residential service",
}
)
self.assertTrue(packet["ready_to_contact"])
self.assertEqual(packet["missing_fields"], [])
self.assertIn("123 Example Rd", packet["email_body"])
self.assertIn("280 feet", packet["email_body"])
self.assertIn("meter base", packet["email_body"])
self.assertIn("per-kWh rate", packet["estimate_request_checklist"])
self.assertIn("800-362-7764", packet["primary_utility"]["phone"])
self.assertIn("nhnewservice@eversource.com", packet["primary_utility"]["email"])
def test_repo_contains_grounded_request_doc(self):
self.assertTrue(DOC_PATH.exists(), "missing committed LAB-007 request doc")
text = DOC_PATH.read_text(encoding="utf-8")
for snippet in (
"# LAB-007 — Grid Power Hookup Estimate Request Packet",
"Eversource",
"800-362-7764",
"nhnewservice@eversource.com",
"No formal estimate has been received yet.",
"pole/transformer",
"monthly base charge",
"per-kWh rate",
):
self.assertIn(snippet, text)
if __name__ == "__main__":
unittest.main()