def test_foo(self):
     items = [Item("foo", 0, 0)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals("foo", items[0].name)
     self.assertEqual(0, items[0].quality)
     self.assertEqual(-1, items[0].sell_in)
Beispiel #2
0
 def test_quality_is_never_negative(self):
     items = [ItemFactory("foo", 3, 1)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertTrue(items[0].quality == 0)
     gilded_rose.update_quality()
     self.assertTrue(items[0].quality == 0)
	def test_QualityMax(self):
		items = [Item(name="+5 Dexterity Vest", sell_in=10, quality=20),
				Item(name="Aged Brie", sell_in=2, quality=0),
				Item(name="Elixir of the Mongoose", sell_in=5, quality=7),
				Item(name="Backstage passes to a TAFKAL80ETC concert", sell_in=15, quality=20),
				Item(name="Backstage passes to a TAFKAL80ETC concert", sell_in=10, quality=49),
				Item(name="Backstage passes to a TAFKAL80ETC concert", sell_in=5, quality=49),
				Item(name="Conjured Mana Cake", sell_in=3, quality=6),
				]
		gilded_rose = GildedRose(items)

		#We test by running update on the input items until either 
		#	1) quality has stabilized (success)
		#	2) quality of any item exceeds 50 (failure)
		#	3) 100 iterations have taken place (failure)
		is_stable = False
		num_iterations = 0
		max_num_iters = 100
		qualities_prev = gilded_rose.Qualities()
		while not is_stable:			
			num_iterations += 1
			self.assertLessEqual(num_iterations, max_num_iters, \
									"Quality not stabilized after " + str(max_num_iters) + " iterations")
			
			gilded_rose.update_quality()
			qualities = gilded_rose.Qualities()
			is_stable = True
			for q, qp in zip(qualities, qualities_prev):
				self.assertLessEqual(q, gilded_rose.quality_max, "Quality exceeds max allowed")
				if q != qp:
					is_stable = False;
			qualities_prev = qualities
    def test_increases_the_quality_by_three_of_the_products_that_get_better_as_they_age_when_there_are_5_days_or_less_left(self):
        item = Item("Backstage passes to a TAFKAL80ETC concert", 5, 15)

        gilded_rose = GildedRose([item])
        gilded_rose.update_quality()

        self._assert_quality_and_sell_in(item, sell_in=4, quality=18)
    def test_quality_zero_for_backstage_passes_and_brie_when_we_have_passed_the_sell_in_date(self):
        item = Item("Backstage passes to a TAFKAL80ETC concert", 0, 20)

        gilded_rose = GildedRose([item])
        gilded_rose.update_quality()

        self._assert_quality_and_sell_in(item, sell_in=-1, quality=0)
    def test_increase_quality_by_two_for_products_that_get_better_as_they_age_and_there_are_10_days_or_less_left(self):
        item = Item("Backstage passes to a TAFKAL80ETC concert", 8, 30)

        gilded_rose = GildedRose([item])
        gilded_rose.update_quality()

        self._assert_quality_and_sell_in(item, sell_in=7, quality=32)
 def test_backstage(self):
     items = [
         Item("Backstage passes to a TAFKAL80ETC concert", 11, 30),
         Item("Backstage passes to a TAFKAL80ETC concert", 10, 30),
         Item("Backstage passes to a TAFKAL80ETC concert", 6, 30),
         Item("Backstage passes to a TAFKAL80ETC concert", 5, 30),
         Item("Backstage passes to a TAFKAL80ETC concert", -1, 30)
         ]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEqual(31, gilded_rose.items[0].quality)
     self.assertEqual(32, gilded_rose.items[1].quality)
     self.assertEqual(32, gilded_rose.items[2].quality)
     self.assertEqual(33, gilded_rose.items[3].quality)
     self.assertEqual(0, gilded_rose.items[4].quality)
     self.assertEqual(10, gilded_rose.items[0].sell_in)
     self.assertEqual(9, gilded_rose.items[1].sell_in)
     self.assertEqual(5, gilded_rose.items[2].sell_in)
     self.assertEqual(4, gilded_rose.items[3].sell_in)
     self.assertEqual(-2, gilded_rose.items[4].sell_in)
     # one more day
     gilded_rose.update_quality()
     self.assertEqual(33, gilded_rose.items[0].quality)
     self.assertEqual(34, gilded_rose.items[1].quality)
     self.assertEqual(35, gilded_rose.items[2].quality)
     self.assertEqual(36, gilded_rose.items[3].quality)
     self.assertEqual(0, gilded_rose.items[4].quality)
     self.assertEqual(9, gilded_rose.items[0].sell_in)
     self.assertEqual(8, gilded_rose.items[1].sell_in)
     self.assertEqual(4, gilded_rose.items[2].sell_in)
     self.assertEqual(3, gilded_rose.items[3].sell_in)
     self.assertEqual(-3, gilded_rose.items[4].sell_in)
	def test_QualityBrie(self):
		items = [Item(name="Aged Brie", sell_in=10, quality=0),
				Item(name="Aged Brie", sell_in=10, quality=0),
				]
		gilded_rose = GildedRose(items)
		gilded_rose.update_quality()
		qualities = gilded_rose.Qualities()
		for q in qualities:
			self.assertGreater(q, 0, "Brie quality did not increase")
def test_modified(item, tstexpect):
    gr = GildedRose(list([item]))
    print(gr.items)

    for expected in tstexpect:
        gr.update_quality()
        ref = gr.items[0]
        print(expected, ref.sell_in, ref.quality)
        assert expected == [ref.sell_in, ref.quality]
    def test_decreses_by_one_the_quality_and_sell_in_for_regular_items(self):
        items = [
                Item("+5 Dexterity Vest", 10, 20),
                Item("Conjured Mana Cake", 3,6)
        ]
        gilded_rose = GildedRose(items)
        gilded_rose.update_quality()

        self._assert_quality_and_sell_in(items[0], sell_in=9, quality=19)
        self._assert_quality_and_sell_in(items[1], sell_in=2, quality=5)
    def test_decreases_the_quality_of_the_rpoducts_twice_as_fast_when_we_have_passed_the_sell_in_date(self):
        items = [
                Item("+5 Dexterity Vest", 0, 20),
                Item("Conjured Mana Cake", 0, 6)
        ]
        gilded_rose = GildedRose(items)
        gilded_rose.update_quality()

        self._assert_quality_and_sell_in(items[0], sell_in=-1, quality=18)
        self._assert_quality_and_sell_in(items[1], sell_in=-1, quality=4)
	def test_Sulfuras(self):
		items = [Item(name="Sulfuras, Hand of Ragnaros", sell_in=0, quality=80)]
		gilded_rose = GildedRose(items)
		quality_pre = gilded_rose.Qualities()[0]
		sell_in_pre = gilded_rose.SellIns()[0]
		gilded_rose.update_quality()
		quality_post = gilded_rose.Qualities()[0]
		sell_in_post = gilded_rose.SellIns()[0]
		self.assertEqual(quality_pre, quality_post, "Sulfuras quality has changed")
		self.assertEqual(sell_in_pre, sell_in_post, "Sulfuras sell-in value changed")
    def test_increases_quality_by_one_for_products_that_get_better_as_they_age(self):
        items = [
                Item("Aged Brie", 20, 30),
                Item("Backstage passes to a TAFKAL80ETC concert", 20, 30)
        ]
        gilded_rose = GildedRose(items)
        gilded_rose.update_quality()

        self._assert_quality_and_sell_in(items[0], sell_in=19, quality=31)
        self._assert_quality_and_sell_in(items[1], sell_in=19, quality=31)
 def test_past_date(self):
     items = [
         Item("Regular thing", 0, 4),
         Item("Other thing", 1, 2),
         Item("Widget 33", 1, 5)
         ]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEqual(2, gilded_rose.items[0].quality)
     self.assertEqual(1, gilded_rose.items[1].quality)
     self.assertEqual(4, gilded_rose.items[2].quality)
     gilded_rose.update_quality()
     self.assertEqual(0, gilded_rose.items[0].quality)
     self.assertEqual(0, gilded_rose.items[1].quality)
     self.assertEqual(2, gilded_rose.items[2].quality)
 def test_brie(self):
     items = [Item("Aged Brie", 2, 46)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEqual("Aged Brie", gilded_rose.items[0].name)
     self.assertEqual(47, gilded_rose.items[0].quality)
     gilded_rose.update_quality()
     self.assertEqual(48, gilded_rose.items[0].quality)
     gilded_rose.update_quality() #increase by 2 now
     self.assertEqual(50, gilded_rose.items[0].quality)
     gilded_rose.update_quality()
     self.assertEqual(50, gilded_rose.items[0].quality)
	def test_DefaultQualityDec(self):
		items = [Item(name="+5 Dexterity Vest", sell_in=-1, quality=20),
				Item(name="Elixir of the Mongoose", sell_in=-1, quality=7),
				]
		gilded_rose = GildedRose(items)

		#Test that the basic decrease is positive:
		self.assertGreater(gilded_rose.default_qual_dec, 0)
		
		#Now test that for ordinary items, the decrease doubles after the SellIn rate
		quality_pre = gilded_rose.Qualities()
		gilded_rose.update_quality()
		quality_post = gilded_rose.Qualities()

		for i in range(0, len(items)):
			self.assertEqual(quality_pre[i]-quality_post[i], 2*gilded_rose.default_qual_dec, \
								"Quality decrement not doubling after sellIn==0")
	def test_QualityConjured(self):
		items = [Item(name="Conjured Mana Cake", sell_in=10, quality=6),
				Item(name="Conjured Mana Cake", sell_in=-10, quality=6)]
		gilded_rose = GildedRose(items)
		qualities_pre = gilded_rose.Qualities()
		gilded_rose.update_quality()
		qualities_post = gilded_rose.Qualities()
		
		#Sell-In >=0
		default_conj_dec = 2 * gilded_rose.default_qual_dec
		self.assertEqual(qualities_pre[0] - qualities_post[0], default_conj_dec, \
							"Invalid Conjured item default decrement")

		#Sell-In < 0
		overdue_conj_dec = 4 * gilded_rose.default_qual_dec
		self.assertEqual(qualities_pre[1] - qualities_post[1], overdue_conj_dec, \
							"Invalid Conjured item overdue decrement")
 def test_sulfuras(self):
     items = [
         Item("Sulfuras, Hand of Ragnaros", 20, 20),
         Item("Sulfuras, Hand of Ragnaros", 0, 80),
         Item("Sulfuras, Hand of Ragnaros", -12, 0),
         Item("Sulfuras, Hand of Ragnaros", 2, 50),
         ]
     gilded_rose = GildedRose(items)
     for _ in range(50):
         gilded_rose.update_quality()
         self.assertEqual(20, gilded_rose.items[0].quality)
         self.assertEqual(80, gilded_rose.items[1].quality)
         self.assertEqual(0, gilded_rose.items[2].quality)
         self.assertEqual(50, gilded_rose.items[3].quality)
         self.assertEqual(20, gilded_rose.items[0].sell_in)
         self.assertEqual(0, gilded_rose.items[1].sell_in)
         self.assertEqual(-12, gilded_rose.items[2].sell_in)
         self.assertEqual(2, gilded_rose.items[3].sell_in)
	def test_SellIn(self):
		items = [
				Item(name="+5 Dexterity Vest", sell_in=10, quality=20),
				Item(name="Aged Brie", sell_in=2, quality=0),
				Item(name="Elixir of the Mongoose", sell_in=5, quality=7),
				Item(name="Backstage passes to a TAFKAL80ETC concert", sell_in=15, quality=20),
				Item(name="Backstage passes to a TAFKAL80ETC concert", sell_in=10, quality=49),
				Item(name="Backstage passes to a TAFKAL80ETC concert", sell_in=5, quality=49),
				Item(name="Conjured Mana Cake", sell_in=3, quality=6),
				]
		gilded_rose = GildedRose(items)
		
		sell_ins_pre = gilded_rose.SellIns()
		gilded_rose.update_quality()
		sell_ins_post = gilded_rose.SellIns()
		
		for i in range(0, len(items)):
			self.assertEqual(sell_ins_post[i] - sell_ins_pre[i], -1, \
							"Sell-In value not decrementing")
	def test_QualityZero(self):
		items = [Item(name="+5 Dexterity Vest", sell_in=10, quality=0),
				Item(name="Aged Brie", sell_in=10, quality=0),
				Item(name="Sulfuras, Hand of Ragnaros", sell_in=10, quality=0),
				Item(name="Elixir of the Mongoose", sell_in=10, quality=0),
				Item(name="Backstage passes to a TAFKAL80ETC concert", sell_in=10, quality=0),
				Item(name="Conjured Mana Cake", sell_in=10, quality=0),
				Item(name="+5 Dexterity Vest", sell_in=-10, quality=0),
				Item(name="Aged Brie", sell_in=-10, quality=0),
				Item(name="Sulfuras, Hand of Ragnaros", sell_in=-10, quality=0),
				Item(name="Elixir of the Mongoose", sell_in=-10, quality=0),
				Item(name="Backstage passes to a TAFKAL80ETC concert", sell_in=-10, quality=0),
				Item(name="Conjured Mana Cake", sell_in=-10, quality=0),
				]
		gilded_rose = GildedRose(items)

		gilded_rose.update_quality()
		quality_post = gilded_rose.Qualities()

		for quality in quality_post:
			self.assertGreaterEqual(quality, 0, "Invalid quality decrease")
Beispiel #21
0
 def test_quality_decreases_faster_after_date_passed(self):
     items = [ItemFactory("foo", 2, 4)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals(3, items[0].quality)
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals(1, items[0].quality)
class GildedRoseTextTest(object):
    def __init__(self, items):
        self.items = items
        self.GildedRose = GildedRose(self.items)

    def run(self, days):
        self.printHead()
        for day in range(days):
            self.printDay(day)
            self.next_day()

    def next_day(self):
        self.GildedRose.update_quality()

    def printDay(self, day):
        print "-------- day %s --------" % day
        print "name, sellIn, quality"
        for item in self.items:
            print item
        print

    def printHead(self):
        print "OMGHAI!"
 def setUp(self):
     self.names = ["+5 Dexterity Vest",
                   "Aged Brie",
                   "Elixir of the Mongoose",
                   "Sulfuras, Hand of Ragnaros",
                   "Backstage passes to a TAFKAL80ETC concert",
                   "Conjured Mana Cake"]
     self.items  = [Item(self.names[0], 10, 20)]
     self.items += [Item(self.names[1], 2, 0)]
     self.items += [Item(self.names[2], 5, 7)]
     self.items += [Item(self.names[3], 0, 80)]
     self.items += [Item(self.names[4], 15, 20)]
     self.items += [Item(self.names[5], 3, 6)]
     self.gilded_rose = GildedRose(self.items)
	def test_BackstagePass(self):
		items = [Item(name="Backstage passes to a TAFKAL80ETC concert", sell_in=15, quality=20)]
		gilded_rose = GildedRose(items)
		sell_in = gilded_rose.SellIns()[0]
		prev_quality = gilded_rose.Qualities()[0]
		#The loop iterates through all phases of backstage pass valuation, from 
		#>10 days out to past-sellby
		while sell_in >= -1:
			gilded_rose.update_quality()
			quality = gilded_rose.Qualities()[0]
			if sell_in<0:
				self.assertEqual(quality, 0, "Backstage pass not 0 after sell-by date")
			else:
				if sell_in<=5:
					expected_inc = min(gilded_rose.quality_max-prev_quality, 3)
				elif sell_in<=10:
					expected_inc = min(gilded_rose.quality_max-prev_quality, 2)
				else:
					expected_inc = min(gilded_rose.quality_max-prev_quality, 1)
				self.assertEqual(quality - prev_quality, expected_inc, \
						"Backstage pass value not changing appropriately at sell_in value " + str(sell_in))
			prev_quality = quality
			sell_in = gilded_rose.SellIns()[0]
Beispiel #25
0
 def test_quality_never_negative(self):
 	item1 = Item("food", 0, 1)
 	item2 = Item("food", 1, 0)
 	gilded_rose1 = GildedRose(item1)
 	gilded_rose2 = GildedRose(item2)
 	gilded_rose1.update_quality()
 	gilded_rose2.update_quality()
 	self.assertEqual(gilded_rose1.item.quality, 0)
 	self.assertEqual(gilded_rose2.item.quality, 0)
Beispiel #26
0
 def test_quality_fifty_threshold(self):
 	item1 = Item("Aged Brie", -2, 49.5)
 	item2 = Item("Aged Brie", -2, 49)
 	gilded_rose1 = GildedRose(item1)
 	gilded_rose2 = GildedRose(item2)
 	gilded_rose1.update_quality()
 	gilded_rose2.update_quality()
 	self.assertEqual(gilded_rose1.item.quality, 50)
 	self.assertEqual(gilded_rose2.item.quality, 50)
 def test_conjured(self):
     items = [Item("Conjured Mana Cake", 2, 7)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEqual(5, gilded_rose.items[0].quality)
     self.assertEqual(1, gilded_rose.items[0].sell_in)
     # one more day
     gilded_rose.update_quality()
     self.assertEqual(3, gilded_rose.items[0].quality)
     self.assertEqual(0, gilded_rose.items[0].sell_in)
     # one more day again
     gilded_rose.update_quality()
     self.assertEqual(0, gilded_rose.items[0].quality)
     self.assertEqual(-1, gilded_rose.items[0].sell_in)
Beispiel #28
0
 def test_backstage_passes_increases_in_quality_by_3(self):
     items = [ItemFactory(name="Backstage passes to a TAFKAL80ETC concert",
                   sell_in=7, quality=10)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals(6, items[0].sell_in)
     self.assertEquals(12, items[0].quality)
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals(5, items[0].sell_in)
     self.assertEquals(15, items[0].quality)
Beispiel #29
0
 def test_backstage_passes_drops_in_quality_after_date(self):
     items = [ItemFactory(name="Backstage passes to a TAFKAL80ETC concert",
                   sell_in=2, quality=10)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals(1, items[0].sell_in)
     self.assertEquals(13, items[0].quality)
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals(0, items[0].sell_in)
     self.assertEquals(0, items[0].quality)
Beispiel #30
0
 def test_Aged_Brie(self):
     items = [Item("Aged Brie", -0, 10), Item("Aged Brie", -5, 10)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals(12, items[0].quality)
Beispiel #31
0
 def test_Sulfuras(self):
     items = [Item("Sulfuras, Hand of Ragnaros", 1, 10)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals(10, items[0].quality)
Beispiel #32
0
 def test_conjured_2(self):
     items = [Item("Conjured III", -0, 10)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals(7, items[0].quality)
Beispiel #33
0
def test_update_quality(item_name, initial_quality, initial_sellin, updated_quality, updated_sellin, comment):
    item = Item(item_name, initial_sellin, initial_quality)
    gilded_rose = GildedRose([item])
    gilded_rose.update_quality()
    assert item.quality == updated_quality
    assert item.sell_in == updated_sellin
Beispiel #34
0
 def test_quality_is_never_negative(self):
     items = [AgingItem("foo", 0, 0)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEqual(0, items[0].quality)
Beispiel #35
0
 def test_quality_is_never_higher_than_50(self):
     items = [BetterWithAgeItem("Aged Brie", 10, 50)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEqual(50, items[0].quality)
Beispiel #36
0
 def test_quality_of_foo_never_becomes_negative(self):
     items = [Item('foo', 0, 0)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     assert items[0].quality == 0
     assert items[0].sell_in == -1
Beispiel #37
0
 def test_out_of_date_foo_deterioration(self):
     items = [Item('foo', -1, 10)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     assert items[0].quality == 8
     assert items[0].sell_in == -2
Beispiel #38
0
 def test_backstage_passes_quality_after_sell_by(self):
     items = [Item('Backstage passes to a TAFKAL80ETC concert', 0, 20)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals(items[0].quality, 0)
     assert items[0].sell_in == -1
from gilded_rose import GildedRose

from unittest import TestCase, skip

gilded_rose = GildedRose()


class GildedRoseTest(TestCase):

    def setUp(self):
        self.items = []

    def test_regular_items_decrease_by_one(self):
        self.items.append(GildedRose.create_item("+5 Dexterity Vest", 10, 20))
        gilded_rose.update_quality(self.items)
        expected = {'sell_in': 9, 'quality': 19}
        item = self.items[0]
        self.assertEqual(item.quality, expected['quality'])
        self.assertEqual(item.sell_in, expected['sell_in'])

    def test_quality_goes_up_for_improving_products(self):
        self.items.append(GildedRose.create_item("Aged Brie", 20, 30))
        self.items.append(GildedRose.create_item("Backstage passes to a TAFKAL80ETC concert", 20, 30))
        gilded_rose.update_quality(self.items)
        expected = [
              {'sell_in': 19, 'quality': 31},
              {'sell_in': 19, 'quality': 31},
            ]

        for index, expectation in enumerate(expected):
            item = self.items[index]
from items import Item

if __name__ == "__main__":
    print("OMGHAI!")
    items = [
        Item(name="+5 Dexterity Vest", sell_in=10, quality=20),
        Item(name="Aged Brie", sell_in=2, quality=0),
        Item(name="Elixir of the Mongoose", sell_in=5, quality=7),
        Item(name="Sulfuras, Hand of Ragnaros", sell_in=0, quality=80),
        Item(name="Sulfuras, Hand of Ragnaros", sell_in=-1, quality=80),
        Item(name="Backstage passes to a TAFKAL80ETC concert", sell_in=15, quality=20),
        Item(name="Backstage passes to a TAFKAL80ETC concert", sell_in=10, quality=49),
        Item(name="Backstage passes to a TAFKAL80ETC concert", sell_in=5, quality=49),
        Item(name="Conjured Mana Cake", sell_in=3, quality=6),  # <-- :O
    ]

    gilded_rose = GildedRose(items)
    days = 2

    import sys

    if len(sys.argv) > 1:
        days = int(sys.argv[1]) + 1

    for day in range(days):
        print("-------- day %s --------" % day)
        print("name, sellIn, quality")
        print(gilded_rose)
        print("")
        gilded_rose.update_quality()
 def test_foo(self):
     items = [Item("fixme", -1, 0), Item("mana potion", 10, 3)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
 def test_name(self):
     items = [Generic_depriciate("Conjured Mana Cake", 3, 6, 2)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEqual("Conjured Mana Cake", items[0].name)
Beispiel #43
0
 def test_quality_degrades_twice_as_fast_after_sell_by_date(self):
     items = [AgingItem("foo", 1, 10), AgingItem("bar", -1, 10)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEqual(9, items[0].quality)
     self.assertEqual(8, items[1].quality)
Beispiel #44
0
 def test_foo(self):
     items = [Item("foo", 0, 0)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals("fixme", items[0].name)
Beispiel #45
0
 def test_sulfuras_doesnt_age(self):
     items = [LegendaryItem("Sulfuras, Hand of Ragnaros", 10, 25)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEqual(10, items[0].sell_in)
Beispiel #46
0
 def test_not_negative(self):
     items = [Item("new_item", -0, -50)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals(-50, items[0].quality)
Beispiel #47
0
 def test_aged_brie_quality_caps_at_50_when_in_date(self):
     items = [Item('Aged Brie', 10, 50)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     assert items[0].quality == 50
     assert items[0].sell_in == 9
Beispiel #48
0
 def test_foo(self):
     items = [Item('foo', 0, 0)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEqual('foo', items[0].name)
Beispiel #49
0
    print("OMGHAI!")
    items = [
        Item(name="+5 Dexterity Vest", sell_in=10, quality=20),
        Item(name="Aged Brie", sell_in=2, quality=0),
        Item(name="Elixir of the Mongoose", sell_in=5, quality=7),
        Item(name="Sulfuras, Hand of Ragnaros", sell_in=0, quality=80),
        Item(name="Sulfuras, Hand of Ragnaros", sell_in=-1, quality=80),
        Item(name="Backstage passes to a TAFKAL80ETC concert",
             sell_in=15,
             quality=20),
        Item(name="Backstage passes to a TAFKAL80ETC concert",
             sell_in=10,
             quality=49),
        Item(name="Backstage passes to a TAFKAL80ETC concert",
             sell_in=5,
             quality=49),
        Item(name="Conjured Mana Cake", sell_in=3, quality=6),  # <-- :O
    ]

    days = 2
    import sys
    if len(sys.argv) > 1:
        days = int(sys.argv[1]) + 1
    for day in range(days):
        print("-------- day %s --------" % day)
        print("name, sellIn, quality")
        for item in items:
            print(item)
        print("")
        GildedRose(items).update_quality()
Beispiel #50
0
 def test_out_of_date_conjured_mana_cake_deterioration(self):
     items = [Item('Conjured Mana Cake', -1, 10)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     assert items[0].quality == 6
     assert items[0].sell_in == -2
Beispiel #51
0
# Archivo principal
from NormalItem import NormalItem
from AgedBrie import AgedBrie
from BackstagePass import BackstagePass
from Conjured import Conjured
from Sulfuras import Sulfuras
from gilded_rose import GildedRose
# Crear los objetos de las clases
dexterity = NormalItem('+5 Dexterity Vest', 10, 20)
aged = AgedBrie('Aged Brie', 2, 0)
elixir = NormalItem('Elixir of the Mongoose', 5, 7)
sulfuras = Sulfuras('Sulfuras, Hand of Ragnaros', 0, 80)
sulfuras_two = Sulfuras('Sulfuras, Hand of Ragnaros', -1, 80)
first_backstage = BackstagePass('Backstage passes to a TAFKAL80ETC concert',
                                15, 20)
second_backstage = BackstagePass('Backstage passes to a TAFKAL80ETC concert',
                                 10, 49)
third_backstage = BackstagePass('Backstage passes to a TAFKAL80ETC concert', 5,
                                49)
conjured = Conjured('Conjured Mana Cake', 3, 6)

stock = GildedRose([
    dexterity, aged, elixir, sulfuras, sulfuras_two, first_backstage,
    second_backstage, third_backstage, conjured
])
stock.get_items()
stock.update_quality(0)
Beispiel #52
0
 def test_sulfuras_never_decreases_sell_by_or_quality(self):
     items = [Item('Sulfuras, Hand of Ragnaros', 100, 30)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     assert items[0].quality == 30
     self.assertEquals(items[0].sell_in, 100)
Beispiel #53
0
 def test_Backstage_passes_2(self):
     items = [Item("Backstage passes to a TAFKAL80ETC concert", 10, 10)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals(12, items[0].quality)
Beispiel #54
0
 def test_sulfuras_can_be_over_fifty_in_quality(self):
     items = [Item('Sulfuras, Hand of Ragnaros', 100, 80)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     assert items[0].quality == 80
     assert items[0].sell_in == 100
Beispiel #55
0
 def test_more_that_50(self):
     items = [Item("new_item", 1, 100)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEquals(True, items[0].quality != 100)
Beispiel #56
0
 def test_backstage_passes_while_ten_days_or_less_left(self):
     items = [Item('Backstage passes to a TAFKAL80ETC concert', 10, 20)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     assert items[0].quality == 22
     assert items[0].sell_in == 9
Beispiel #57
0
 def test_aged_brie_quality_increses_over_time_while_in_date(self):
     items = [Item('Aged Brie', 10, 0)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     assert items[0].quality == 1
     assert items[0].sell_in == 9
 def test_sellin_day3(self):
     items = [Generic_depriciate("Conjured Mana Cake", 0, 0, 2)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     self.assertEqual(-1, items[0].sell_in)
     self.assertEqual(0, items[0].quality)
 def test_example(self):
     items = [Item(SOME_ITEM_NAME, 0, 0)]
     gilded_rose = GildedRose()
     gilded_rose.update_quality()
     self.assertEqual(SOME_ITEM_NAME, items[0].name)
Beispiel #60
0
 def test_aged_brie_quality_increses_by_two_when_out_of_date(self):
     items = [Item('Aged Brie', -5, 0)]
     gilded_rose = GildedRose(items)
     gilded_rose.update_quality()
     assert items[0].quality == 2
     assert items[0].sell_in == -6