feat: pricing function for test tutorial test: test cases for pricing

This commit is contained in:
Sandro Zimmermann 2026-03-26 14:47:33 +01:00
parent ed538a8810
commit 6b28a6ab1d
2 changed files with 19 additions and 0 deletions

View File

@ -1,2 +1,6 @@
def discount_price(price: float, percent: float) -> float:
if price < 0:
raise ValueError("Price must be >= 0")
if not 0 <= percent <= 100:
raise ValueError("Percent must be between 0 and 100")
return price - price * percent / 100

View File

@ -1,6 +1,21 @@
from src.tutorial.testing.shop.pricing import discount_price
import pytest
def test_discount_price_reduces_price():
result = discount_price(100.0, 20.0)
assert result == 80
assert discount_price(100.0, 50.0) == 50
assert discount_price(100.0, 0) == 100
assert discount_price(100.0, 100) == 0
def test_negative_orice_raises_value_error() -> None:
with pytest.raises(ValueError):
discount_price(-100.0, 50.0) is ValueError
def test_percent_above_hundered_message() -> None:
with pytest.raises(ValueError, match="between 0 and 100"):
discount_price(100.0, 150.0)