mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
_apply_section_borders sets medium right-border on subtable boundary columns 🟥
This commit is contained in:
parent
65a40ad371
commit
a748260b7d
2 changed files with 27 additions and 2 deletions
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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}"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue