Add conjuring

Signed-off-by: Jean-Maxime <jm.fillau@gmail.com>
This commit is contained in:
Jean-Maxime 2025-12-15 12:30:32 +01:00
parent 5ddd6ec0fb
commit 24c9be9f78
2 changed files with 35 additions and 0 deletions

View File

@ -85,3 +85,15 @@ class BackstagePassUpdater(ItemUpdater):
self.item.quality = min(50, self.item.quality + 1) # More than 10 days: +1
self.item.sell_in = self.item.sell_in - 1
@ItemUpdater.register("Conjured")
class ConjuredItemUpdater(ItemUpdater):
def update(self):
self.item.sell_in = self.item.sell_in - 1
if self.item.quality > 0:
self.item.quality = self.item.quality - 2
if self.item.sell_in < 0 and self.item.quality > 0:
self.item.quality = self.item.quality - 2

View File

@ -101,5 +101,28 @@ class GildedRoseBackstagePassTest(unittest.TestCase):
self.assertEqual(0, items[0].quality)
self.assertEqual(-1, items[0].sell_in)
class GildedRoseConjuredItemTest(unittest.TestCase):
def test_item_quality(self):
items = [Item("Conjured", 20, 40)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
self.assertEqual(38, items[0].quality)
self.assertEqual(19, items[0].sell_in)
def test_item_quality_sell_in_passed(self):
items = [Item("Conjured", 0, 40)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
self.assertEqual(36, items[0].quality)
self.assertEqual(-1, items[0].sell_in)
def test_item_quality_sell_can_be_negative(self):
items = [Item("Conjured", 20, 0)]
gilded_rose = GildedRose(items)
gilded_rose.update_quality()
self.assertEqual(0, items[0].quality)
self.assertEqual(19, items[0].sell_in)
if __name__ == '__main__':
unittest.main()