Add comprehensive test suite achieving 99% code coverage

Added 35 test files with 502 tests covering all Python modules including
API routes, ORM models, splendor game logic/TUI, heater controller,
weather service, NixOS installer, ZFS dataset management, and utilities.
Coverage improved from 11% to 99% (2540/2564 statements covered).

https://claude.ai/code/session_01SVzgLDUS1Cdc4eh1ijETTh
This commit is contained in:
Claude
2026-03-09 03:55:38 +00:00
parent 66acc010ca
commit b3199dfc31
35 changed files with 6850 additions and 0 deletions

View File

@@ -0,0 +1,156 @@
"""Tests for python/splendor/human.py - non-TUI parts."""
from __future__ import annotations
from python.splendor.human import (
COST_ABBR,
COLOR_ABBR_TO_FULL,
COLOR_STYLE,
color_token,
fmt_gem,
fmt_number,
format_card,
format_cost,
format_discounts,
format_noble,
format_tokens,
parse_color_token,
)
from python.splendor.base import Card, GEM_COLORS, Noble
import pytest
# --- parse_color_token ---
def test_parse_color_token_full_names() -> None:
"""Test parsing full color names."""
assert parse_color_token("white") == "white"
assert parse_color_token("blue") == "blue"
assert parse_color_token("green") == "green"
assert parse_color_token("red") == "red"
assert parse_color_token("black") == "black"
def test_parse_color_token_abbreviations() -> None:
"""Test parsing abbreviated color names."""
assert parse_color_token("w") == "white"
assert parse_color_token("b") == "blue"
assert parse_color_token("g") == "green"
assert parse_color_token("r") == "red"
assert parse_color_token("k") == "black"
assert parse_color_token("o") == "gold"
def test_parse_color_token_case_insensitive() -> None:
"""Test parsing is case insensitive."""
assert parse_color_token("WHITE") == "white"
assert parse_color_token("B") == "blue"
def test_parse_color_token_unknown() -> None:
"""Test parsing unknown color raises."""
with pytest.raises(ValueError, match="Unknown color"):
parse_color_token("purple")
# --- format functions ---
def test_format_cost() -> None:
"""Test format_cost formats correctly."""
cost = {"white": 2, "blue": 1, "green": 0, "red": 0, "black": 0, "gold": 0}
result = format_cost(cost)
assert "W:" in result
assert "B:" in result
def test_format_cost_empty() -> None:
"""Test format_cost with all zeros."""
cost = dict.fromkeys(GEM_COLORS, 0)
result = format_cost(cost)
assert result == "-"
def test_format_card() -> None:
"""Test format_card."""
card = Card(tier=1, points=2, color="white", cost={"white": 0, "blue": 1, "green": 0, "red": 0, "black": 0, "gold": 0})
result = format_card(card)
assert "T1" in result
assert "P2" in result
def test_format_noble() -> None:
"""Test format_noble."""
noble = Noble(name="Noble 1", points=3, requirements={"white": 3, "blue": 3, "green": 3})
result = format_noble(noble)
assert "Noble 1" in result
assert "+3" in result
def test_format_tokens() -> None:
"""Test format_tokens."""
tokens = {"white": 2, "blue": 1, "green": 0, "red": 0, "black": 0, "gold": 0}
result = format_tokens(tokens)
assert "white:" in result
def test_format_discounts() -> None:
"""Test format_discounts."""
discounts = {"white": 2, "blue": 1, "green": 0, "red": 0, "black": 0, "gold": 0}
result = format_discounts(discounts)
assert "W:" in result
def test_format_discounts_empty() -> None:
"""Test format_discounts with all zeros."""
discounts = dict.fromkeys(GEM_COLORS, 0)
result = format_discounts(discounts)
assert result == "-"
# --- formatting helpers ---
def test_color_token() -> None:
"""Test color_token."""
result = color_token("white", 3)
assert "white" in result
assert "3" in result
def test_fmt_gem() -> None:
"""Test fmt_gem."""
result = fmt_gem("blue")
assert "blue" in result
def test_fmt_number() -> None:
"""Test fmt_number."""
result = fmt_number(42)
assert "42" in result
# --- constants ---
def test_cost_abbr_all_colors() -> None:
"""Test COST_ABBR has all gem colors."""
for color in GEM_COLORS:
assert color in COST_ABBR
def test_color_abbr_to_full() -> None:
"""Test COLOR_ABBR_TO_FULL mappings."""
assert COLOR_ABBR_TO_FULL["w"] == "white"
assert COLOR_ABBR_TO_FULL["o"] == "gold"
def test_color_style_all_colors() -> None:
"""Test COLOR_STYLE has all gem colors."""
for color in GEM_COLORS:
assert color in COLOR_STYLE
fg, bg = COLOR_STYLE[color]
assert isinstance(fg, str)
assert isinstance(bg, str)