fix(models): require a positive range_increment_ft (reject 0 and negatives)
This commit is contained in:
@@ -116,6 +116,21 @@ class TestAttackSpec:
|
||||
with pytest.raises(ValidationError):
|
||||
AttackSpec.model_validate(_attack_dict(damage=[]))
|
||||
|
||||
@pytest.mark.parametrize("increment", [0, -30])
|
||||
def test_rejects_non_positive_range_increment(self, increment: int) -> None:
|
||||
# Given a range_increment_ft of 0 (ZeroDivisionError in range_penalty)
|
||||
# or negative (silently unusable weapon)
|
||||
# When/Then validation rejects it
|
||||
with pytest.raises(ValidationError):
|
||||
AttackSpec.model_validate(_attack_dict(kind="ranged", range_increment_ft=increment))
|
||||
|
||||
def test_accepts_positive_range_increment(self) -> None:
|
||||
# Given a legal range increment
|
||||
# When validated
|
||||
attack = AttackSpec.model_validate(_attack_dict(kind="ranged", range_increment_ft=30))
|
||||
# Then it is kept
|
||||
assert attack.range_increment_ft == 30
|
||||
|
||||
def test_rejects_crit_mult_below_2(self) -> None:
|
||||
# Given crit_mult=1 (a weapon that never multiplies is not PF1e)
|
||||
# When/Then validation rejects it
|
||||
|
||||
Reference in New Issue
Block a user