-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_gilded_rose.py
106 lines (94 loc) · 4.19 KB
/
test_gilded_rose.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import pytest
import gilded_rose
quality_test_cases = (
("expected_quality", "item", "comment"),
[
(0, gilded_rose.Item("foo", 10, 0), "idk what i'm doing"),
(49, gilded_rose.Item("foo", 10, 50), ""),
(49, gilded_rose.Item("foo", 50, 50), ""),
(50, gilded_rose.Item("Aged Brie", 50, 50), ""),
(80, gilded_rose.Item("Sulfuras, Hand of Ragnaros", 50, 80), ""),
(25, gilded_rose.Item("Sulfuras, Hand of Ragnaros", 50, 25), ""),
(26, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 50, 25), ""),
(11, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 50, 10), ""),
(12, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 10, 10), ""),
(41, gilded_rose.Item("Aged Brie", 50, 40), ""),
(50, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 10, 49), ""),
(50, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 5, 49), ""),
(48, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 5, 45), ""),
(48, gilded_rose.Item("foo", 0, 50), ""),
(42, gilded_rose.Item("Aged Brie", 0, 40), ""),
(50, gilded_rose.Item("Aged Brie", 0, 50), ""),
(0, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 0, 45), ""),
(0, gilded_rose.Item("foo", 0, 0), ""),
(80, gilded_rose.Item("Sulfuras, Hand of Ragnaros", -1, 80), ""),
],
)
sell_in_test_cases = (
("expected_sell_in", "item", "comment"),
[
(9, gilded_rose.Item("foo", 10, 0), "cool item"),
(9, gilded_rose.Item("foo", 10, 50), ""),
(100, gilded_rose.Item("foo", 101, 50), ""),
(49, gilded_rose.Item("Aged Brie", 50, 50), ""),
(50, gilded_rose.Item("Sulfuras, Hand of Ragnaros", 50, 50), ""),
(50, gilded_rose.Item("Sulfuras, Hand of Ragnaros", 50, 25), ""),
(49, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 50, 25), ""),
(49, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 50, 10), ""),
(9, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 10, 10), ""),
(49, gilded_rose.Item("Aged Brie", 50, 40), ""),
(9, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 10, 49), ""),
(4, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 5, 49), ""),
(4, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 5, 45), ""),
(-1, gilded_rose.Item("foo", 0, 50), ""),
(-1, gilded_rose.Item("Aged Brie", 0, 40), ""),
(-1, gilded_rose.Item("Aged Brie", 0, 50), ""),
(-1, gilded_rose.Item("Backstage passes to a TAFKAL80ETC concert", 0, 45), ""),
(-1, gilded_rose.Item("foo", 0, 0), ""),
(-1, gilded_rose.Item("Sulfuras, Hand of Ragnaros", -1, 80), ""),
],
)
@pytest.mark.parametrize(*quality_test_cases)
def test_quality_after_update_quality(expected_quality, item, comment):
items = [item]
inn = gilded_rose.GildedRose(items)
inn.update_quality()
assert item.quality == expected_quality
@pytest.mark.parametrize(*sell_in_test_cases)
def test_sell_in_after_update_quality(expected_sell_in, item, comment):
items = [item]
inn = gilded_rose.GildedRose(items)
inn.update_quality()
assert item.sell_in == expected_sell_in
conjured_item_test_cases = (
(
"expected_sell_in",
"expected_quality",
"base_name",
"starting_sell_in",
"starting_quality",
"comment",
),
[
(100, 24, "potato", 101, 26, ""),
(45, 2, "pizza", 46, 4, ""),
(-1, 4, "pasta", 0, 8, "expired pasta :("),
(50, 0, "water", 51, 1, "quality goes below 0"),
(-90, 0, "turkey leg", -89, 3, "super expired"),
],
)
@pytest.mark.parametrize(*conjured_item_test_cases)
def test_conjured_items(
expected_sell_in,
expected_quality,
base_name,
starting_sell_in,
starting_quality,
comment,
):
item_name = "Conjured {}".format(base_name)
item = gilded_rose.Item(item_name, starting_sell_in, starting_quality)
inn = gilded_rose.GildedRose([item])
inn.update_quality()
assert item.quality == expected_quality
assert item.sell_in == expected_sell_in