mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-04 09:11:39 +00:00
38 lines
965 B
Python
38 lines
965 B
Python
import pytest
|
|
|
|
from gilded_rose import Item
|
|
|
|
|
|
def test_item_decreases_quality_and_sell_in():
|
|
item = Item("foo", sell_in=10, quality=20)
|
|
item.daily_step()
|
|
assert item.sell_in == 9
|
|
assert item.quality == 19
|
|
|
|
|
|
def test_item_quality_never_negative():
|
|
item = Item("bar", sell_in=5, quality=0)
|
|
item.daily_step()
|
|
assert item.quality == 0
|
|
|
|
|
|
def test_item_degrades_twice_as_fast_after_sell_date():
|
|
item = Item("baz", sell_in=0, quality=10)
|
|
# After sell-in passes, degradation doubles
|
|
item.daily_step()
|
|
assert item.sell_in == -1
|
|
assert item.quality == 8
|
|
|
|
|
|
def test_item_quality_floor_boundary():
|
|
item = Item("qux", sell_in=1, quality=1)
|
|
item.daily_step()
|
|
assert item.quality == 0
|
|
item.daily_step() # now past sell date, but cannot drop below 0
|
|
assert item.quality == 0
|
|
|
|
|
|
def test_item_init_with_negative_quality_raises():
|
|
with pytest.raises(AssertionError):
|
|
Item("oops", sell_in=5, quality=-1)
|