mypy black ruff
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import pytest
|
||||
from datetime import date
|
||||
|
||||
import pytest
|
||||
|
||||
from src.models.category import Category, CategoryBudget
|
||||
|
||||
|
||||
@@ -20,7 +21,7 @@ class TestCategoryComputedFields:
|
||||
"""Test hash_id for multi-level category hierarchy."""
|
||||
c1 = Category.from_str("level1:level2:level3")
|
||||
assert hasattr(c1, "hash_id")
|
||||
|
||||
|
||||
c2 = Category.from_str("level1:level2:level3")
|
||||
assert c1.hash_id == c2.hash_id
|
||||
|
||||
@@ -35,10 +36,10 @@ class TestCategoryComputedFields:
|
||||
"""Test that same name but different parent gives different hash."""
|
||||
root = Category(name="Budget")
|
||||
cat1 = Category(name="Budget", parent=root)
|
||||
|
||||
|
||||
# Create another with same name but no parent
|
||||
orphan = Category.from_str("Budget")
|
||||
|
||||
|
||||
assert cat1.hash_id != orphan.hash_id
|
||||
|
||||
def test_to_str_single_level(self):
|
||||
@@ -84,7 +85,7 @@ class TestCategoryBudgetValidation:
|
||||
|
||||
def test_valid_budget_with_dates(self):
|
||||
"""Budget with valid date range is accepted."""
|
||||
from datetime import date
|
||||
|
||||
cat = Category.from_str("test")
|
||||
budget = CategoryBudget(
|
||||
category=cat,
|
||||
@@ -97,9 +98,9 @@ class TestCategoryBudgetValidation:
|
||||
|
||||
def test_invalid_date_range_raises(self):
|
||||
"""Budget with valid_from > valid_to raises ValueError."""
|
||||
from datetime import date
|
||||
|
||||
cat = Category.from_str("test")
|
||||
|
||||
|
||||
with pytest.raises(ValueError) as exc_info:
|
||||
CategoryBudget(
|
||||
category=cat,
|
||||
@@ -107,14 +108,14 @@ class TestCategoryBudgetValidation:
|
||||
valid_from=date(2026, 10, 31),
|
||||
valid_to=date(2026, 10, 1),
|
||||
)
|
||||
|
||||
|
||||
assert "valid_from" in str(exc_info.value)
|
||||
assert "valid_to" in str(exc_info.value)
|
||||
assert "nor in order" in str(exc_info.value)
|
||||
|
||||
def test_valid_budget_exact_boundary(self):
|
||||
"""Budget with exact same from and to is valid (single day)."""
|
||||
from datetime import date
|
||||
|
||||
cat = Category.from_str("test")
|
||||
budget = CategoryBudget(
|
||||
category=cat,
|
||||
@@ -127,7 +128,7 @@ class TestCategoryBudgetValidation:
|
||||
|
||||
def test_validation_preserves_original_values(self):
|
||||
"""Validation doesn't change the model's original values."""
|
||||
from datetime import date
|
||||
|
||||
cat = Category.from_str("test")
|
||||
budget = CategoryBudget(
|
||||
category=cat,
|
||||
@@ -135,10 +136,10 @@ class TestCategoryBudgetValidation:
|
||||
valid_from=date(2026, 9, 1),
|
||||
valid_to=date(2026, 9, 30),
|
||||
)
|
||||
|
||||
# Create an invalid one and verify validation catches it
|
||||
|
||||
# Create an invalid one (valid_from > valid_to) and verify validation catches it
|
||||
try:
|
||||
bad_budget = CategoryBudget(
|
||||
CategoryBudget(
|
||||
category=cat,
|
||||
amount_eur=200.00,
|
||||
valid_from=date(2026, 12, 31),
|
||||
@@ -146,6 +147,6 @@ class TestCategoryBudgetValidation:
|
||||
)
|
||||
except ValueError:
|
||||
pass # Expected
|
||||
|
||||
|
||||
# Valid one should still have original values
|
||||
assert budget.amount_eur == 150.75
|
||||
|
||||
Reference in New Issue
Block a user