Skip to content

Issue #164: rename safety YAML generator tests and add parametrized coverage#175

Merged
hubertciebiada merged 1 commit into
masterfrom
test/164-safety-yaml-generator-tests
Apr 19, 2026
Merged

Issue #164: rename safety YAML generator tests and add parametrized coverage#175
hubertciebiada merged 1 commit into
masterfrom
test/164-safety-yaml-generator-tests

Conversation

@hubertciebiada

Copy link
Copy Markdown
Owner

Summary

  • Renames tests/unit/test_yaml_generator.py -> tests/unit/test_safety_yaml_generator.py via git mv (history preserved) to mirror pumpahead/safety_yaml_generator.py.
  • Appends 416 LOC of additive coverage: reusable fixtures (living_room_fixture, multi_room_fixture), empty/whitespace entity_pumpahead_last_update validator tests (closes previously uncovered branch), explicit string-equality idempotency tests, 4 parametrized threshold grids (26 invocations total), bathroom heating-only (no-split) edge case, and humidity-sensor absence tests.
  • All S1-S5 safety rule builders have >=1 positive and >=1 negative test. Local coverage reports 100% (148/148) on the generator module.

Test plan

  • pytest tests/unit/test_safety_yaml_generator.py -q - 122 passed, zero warnings under filterwarnings = ["error"]
  • pytest tests/unit -x - full unit suite green
  • ruff check and ruff format --check pass
  • git log --follow shows pre-rename history (rename preserved)
  • Reviewer APPROVE (round 1)

Closes #164

@hubertciebiada hubertciebiada enabled auto-merge (squash) April 18, 2026 23:30
@hubertciebiada hubertciebiada force-pushed the test/164-safety-yaml-generator-tests branch 2 times, most recently from 0b696bf to 5138864 Compare April 19, 2026 00:28
Rename tests/unit/test_yaml_generator.py -> test_safety_yaml_generator.py
via git mv (preserves history) to mirror pumpahead/safety_yaml_generator.py.

Augment with:
- living_room_fixture + multi_room_fixture (reusable pytest fixtures
  including the no-split 'Lazienka Dolna' bathroom heating-only case)
- TestSafetyYAMLConfigExtra: empty/whitespace entity_pumpahead_last_update
  validators (closes line 161-163 coverage gap, bringing coverage to 100%)
- TestIdempotency: explicit string-equality checks for full, multi-room,
  and per-room YAML generation
- TestParametrizedThresholds: 26 parametrized test invocations covering
  S1/S3/S4 numeric thresholds, S5 template thresholds, S2 margins, and
  split-presence drives HVAC action logic
- TestBathroomHeatingOnly: documents no-split room edge case (S2/S3/S4)
- TestHumiditySensorAbsence: parametrized negative + positive S2 template
- TestMultiRoomFixture: exercises multi_room_fixture end-to-end

Coverage on pumpahead/safety_yaml_generator.py: 100%.
ruff check + format: clean.
@hubertciebiada hubertciebiada merged commit 01ad375 into master Apr 19, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Epic 21.9: Unit tests for safety_yaml_generator.py (926 LOC, 0 coverage)

1 participant