_apply_section_borders sets medium right-border on subtable boundary columns 🟥

This commit is contained in:
Daniel Roth 2026-05-15 15:38:21 +00:00
parent 65a40ad371
commit a748260b7d
2 changed files with 27 additions and 2 deletions

View file

@ -2,7 +2,7 @@ from dataclasses import dataclass
from typing import Optional
import openpyxl
from openpyxl.styles import Alignment, Font, PatternFill
from openpyxl.styles import Alignment, Border, Font, PatternFill, Side
from openpyxl.worksheet.worksheet import Worksheet
from datatypes.magicplan.domain.models import Plan
@ -85,6 +85,15 @@ def _build_rows(plan: Plan) -> list[AuditRow]:
_BLANK_SEPARATOR_COLS = {5, 21}
_MEDIUM_RIGHT = Border(right=Side(style="medium"))
_SECTION_BOUNDARY_COLS = {4, 11, 15, 20}
def _apply_section_borders(ws: Worksheet, row: int) -> None:
for col in _SECTION_BOUNDARY_COLS:
ws.cell(row=row, column=col).border = _MEDIUM_RIGHT
def _write_headers(ws: Worksheet) -> None:
# Row 1: group labels (merged)
_merge_bold_fill(ws, 1, 1, 1, 4, "Room")

View file

@ -1,6 +1,6 @@
import openpyxl
from datatypes.magicplan.domain.models import Door, Floor, Plan, Room, Window
from backend.magic_plan.audit_script import AuditRow, _build_rows, _write_headers
from backend.magic_plan.audit_script import AuditRow, _apply_section_borders, _build_rows, _write_headers
def test_build_rows_opening_and_trickle_vent_fields_are_none() -> None:
@ -260,3 +260,19 @@ def test_write_headers_two_rows_correct_labels_and_column_positions() -> None:
assert ws.cell(row=2, column=13).value == "Opening Width m"
assert ws.cell(row=2, column=14).value == "Opening Height m"
assert ws.cell(row=2, column=15).value == "Total Area m²"
def test_apply_section_borders_sets_medium_right_border_on_boundary_columns() -> None:
# Arrange
wb = openpyxl.Workbook()
ws = wb.active # type: ignore[assignment]
# Act
_apply_section_borders(ws, 1)
# Assert — medium right-border on last col of each subtable
for col in (4, 11, 15, 20):
assert ws.cell(row=1, column=col).border.right.style == "medium", f"col {col}"
# Assert — non-boundary columns are untouched
for col in (1, 6, 12, 22):
assert ws.cell(row=1, column=col).border.right.style is None, f"col {col}"