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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
import datetime
from testtools import TestCase
import report_tools
class FillTemplateTests(TestCase):
def test_finds_template(self):
output = report_tools.fill_template("test.html", dict(data="foo"))
self.assertEqual("Testing foo\n", output)
class WeekdaysBetweenTests(TestCase):
def test_start_after_end(self):
start = datetime.date(2011, 02, 17)
end = datetime.date(2011, 02, 16)
self.assertEqual(0, report_tools.weekdays_between(start, end))
def test_start_equals_end(self):
start = datetime.date(2011, 02, 16)
end = datetime.date(2011, 02, 16)
self.assertEqual(0, report_tools.weekdays_between(start, end))
def test_one_day_before_thursday(self):
# Wednesday
start = datetime.date(2011, 02, 16)
# Thursday
end = datetime.date(2011, 02, 17)
self.assertEqual(1, report_tools.weekdays_between(start, end))
def test_one_day_before_saturday(self):
# Friday
start = datetime.date(2011, 02, 18)
# Saturday
end = datetime.date(2011, 02, 19)
self.assertEqual(1, report_tools.weekdays_between(start, end))
def test_one_day_before_sunday(self):
# Saturday
start = datetime.date(2011, 02, 19)
# Sunday
end = datetime.date(2011, 02, 20)
self.assertEqual(0, report_tools.weekdays_between(start, end))
def test_one_day_before_monday(self):
# Sunday
start = datetime.date(2011, 02, 20)
# Monday
end = datetime.date(2011, 02, 21)
self.assertEqual(0, report_tools.weekdays_between(start, end))
def test_two_days_before_monday(self):
# Saturday
start = datetime.date(2011, 02, 19)
# Monday
end = datetime.date(2011, 02, 21)
self.assertEqual(0, report_tools.weekdays_between(start, end))
def test_three_days_before_monday(self):
# Friday
start = datetime.date(2011, 02, 18)
# Monday
end = datetime.date(2011, 02, 21)
self.assertEqual(1, report_tools.weekdays_between(start, end))
def test_one_day_before_tuesday(self):
# Monday
start = datetime.date(2011, 02, 21)
# Tuesday
end = datetime.date(2011, 02, 22)
self.assertEqual(1, report_tools.weekdays_between(start, end))
def test_sunday_to_saturday(self):
# Sunday
start = datetime.date(2011, 02, 13)
# Saturday
end = datetime.date(2011, 02, 19)
self.assertEqual(5, report_tools.weekdays_between(start, end))
def test_saturday_to_saturday(self):
# Saturday
start = datetime.date(2011, 02, 12)
# Next Saturday
end = datetime.date(2011, 02, 19)
self.assertEqual(5, report_tools.weekdays_between(start, end))
def test_monday_to_saturday(self):
# Monday
start = datetime.date(2011, 02, 14)
# Saturday
end = datetime.date(2011, 02, 19)
self.assertEqual(5, report_tools.weekdays_between(start, end))
def test_thursday_to_tuesday(self):
# Thursday
start = datetime.date(2011, 02, 17)
# Next tuesday
end = datetime.date(2011, 02, 22)
# 3 = Thursday, Friday, Monday
self.assertEqual(3, report_tools.weekdays_between(start, end))
def test_thirteen_days_to_tuesday(self):
# Wednesday
start = datetime.date(2011, 02, 9)
# Next, next tuesday
end = datetime.date(2011, 02, 22)
# 4 for Wednesday, Thursday, Friday, Monday
# + 5 for the whole week
# = 9
self.assertEqual(9, report_tools.weekdays_between(start, end))
class DurationElapsedTests(TestCase):
def test_start_date_after_end_date(self):
start = datetime.date(2011, 02, 9)
end = datetime.date(2011, 02, 8)
current = end
self.assertEqual(
100, report_tools.duration_elapsed(start, end, current))
def test_start_date_equals_end_date(self):
start = datetime.date(2011, 02, 9)
end = start
current = end
self.assertEqual(
100, report_tools.duration_elapsed(start, end, current))
def test_current_date_after_end_date(self):
start = datetime.date(2011, 02, 9)
end = datetime.date(2011, 02, 10)
current = datetime.date(2011, 02, 11)
self.assertEqual(
100, report_tools.duration_elapsed(start, end, current))
def test_current_date_equals_end_date(self):
start = datetime.date(2011, 02, 9)
end = datetime.date(2011, 02, 10)
current = end
self.assertEqual(
100, report_tools.duration_elapsed(start, end, current))
def test_start_date_after_current_date(self):
start = datetime.date(2011, 02, 9)
end = datetime.date(2011, 02, 10)
current = datetime.date(2011, 02, 8)
self.assertEqual(
0, report_tools.duration_elapsed(start, end, current))
def test_start_date_equals_current_date(self):
start = datetime.date(2011, 02, 9)
end = datetime.date(2011, 02, 10)
current = start
self.assertEqual(
0, report_tools.duration_elapsed(start, end, current))
def test_percentage_computed(self):
start = datetime.date(2011, 02, 9)
end = datetime.date(2011, 02, 11)
current = datetime.date(2011, 02, 10)
self.assertEqual(
50, report_tools.duration_elapsed(start, end, current))
def test_suite():
from unittest import TestLoader
loader = TestLoader()
suite = loader.loadTestsFromName(__name__)
suite.addTests(loader.loadTestsFromName("lpworkitems.tests.test_collect"))
suite.addTests(loader.loadTestsFromName("lpworkitems.tests.test_error_collector"))
suite.addTests(loader.loadTestsFromName("lpworkitems.tests.test_factory"))
suite.addTests(loader.loadTestsFromName("lpworkitems.tests.test_fake_launchpad"))
suite.addTests(loader.loadTestsFromName("lpworkitems.tests.test_models"))
return suite
|