diff --git a/python/gilded_rose.py b/python/gilded_rose.py index 4f21ea64..c2f4582c 100755 --- a/python/gilded_rose.py +++ b/python/gilded_rose.py @@ -7,9 +7,18 @@ class GildedRose(object): def update_quality(self): for item in self.items: - if item.name != "Aged Brie" and item.name != "Backstage passes to a TAFKAL80ETC concert": + # Check if item is Conjured + is_conjured = item.name.startswith("Conjured") + + if item.name == "Sulfuras, Hand of Ragnaros": + # Sulfuras never changes - skip quality updates + pass + elif item.name != "Aged Brie" and item.name != "Backstage passes to a TAFKAL80ETC concert": if item.quality > 0: - if item.name != "Sulfuras, Hand of Ragnaros": + # Conjured items degrade twice as fast + if is_conjured: + item.quality = item.quality - 2 + else: item.quality = item.quality - 1 else: if item.quality < 50: @@ -28,7 +37,11 @@ class GildedRose(object): if item.name != "Backstage passes to a TAFKAL80ETC concert": if item.quality > 0: if item.name != "Sulfuras, Hand of Ragnaros": - item.quality = item.quality - 1 + # Conjured items degrade twice as fast even after sell by date + if is_conjured: + item.quality = item.quality - 2 + else: + item.quality = item.quality - 1 else: item.quality = item.quality - item.quality else: diff --git a/python/tests/test_gilded_rose.py b/python/tests/test_gilded_rose.py index 1c92f638..84600f0c 100644 --- a/python/tests/test_gilded_rose.py +++ b/python/tests/test_gilded_rose.py @@ -9,7 +9,7 @@ class GildedRoseTest(unittest.TestCase): items = [Item("foo", 0, 0)] gilded_rose = GildedRose(items) gilded_rose.update_quality() - self.assertEqual("fixme", items[0].name) + self.assertEqual("foo", items[0].name) if __name__ == '__main__':