Merge lp:~stevenk/launchpad/approximateduration-no-words into lp:launchpad
- approximateduration-no-words
- Merge into devel
Proposed by
Steve Kowalik
Status: | Merged |
---|---|
Approved by: | Aaron Bentley |
Approved revision: | no longer in the source branch. |
Merged at revision: | 13358 |
Proposed branch: | lp:~stevenk/launchpad/approximateduration-no-words |
Merge into: | lp:launchpad |
Diff against target: |
610 lines (+65/-115) 13 files modified
lib/canonical/launchpad/doc/presenting-lengths-of-time.txt (+15/-15) lib/lp/app/browser/tales.py (+13/-45) lib/lp/app/doc/tales.txt (+0/-18) lib/lp/bugs/templates/bugtarget-patches.pt (+1/-1) lib/lp/code/mail/tests/test_sourcepackagerecipebuild.py (+1/-1) lib/lp/code/stories/codeimport/xx-codeimport-results.txt (+7/-7) lib/lp/registry/browser/tests/poll-views.txt (+2/-2) lib/lp/registry/doc/teammembership-email-notification.txt (+5/-5) lib/lp/soyuz/doc/build-failedtoupload-workflow.txt (+1/-1) lib/lp/soyuz/stories/soyuz/xx-buildfarm-index.txt (+4/-4) lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt (+14/-14) lib/lp/translations/browser/tests/test_baseexportview.py (+1/-1) lib/lp/translations/stories/buildfarm/xx-build-summary.txt (+1/-1) |
To merge this branch: | bzr merge lp:~stevenk/launchpad/approximateduration-no-words |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Aaron Bentley (community) | Approve | ||
Review via email: mp+66586@code.launchpad.net |
Commit message
[r=abentley][bug=138490] fmt:approximate
Description of the change
Utterly rip out all uses (as well as the code itself) of approximatedura
To post a comment you must log in.
Revision history for this message
Aaron Bentley (abentley) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'lib/canonical/launchpad/doc/presenting-lengths-of-time.txt' | |||
2 | --- lib/canonical/launchpad/doc/presenting-lengths-of-time.txt 2011-06-23 13:10:40 +0000 | |||
3 | +++ lib/canonical/launchpad/doc/presenting-lengths-of-time.txt 2011-07-01 19:18:42 +0000 | |||
4 | @@ -113,31 +113,31 @@ | |||
5 | 113 | 113 | ||
6 | 114 | >>> td = timedelta(seconds=55) | 114 | >>> td = timedelta(seconds=55) |
7 | 115 | >>> test_tales('td/fmt:approximateduration', td=td) | 115 | >>> test_tales('td/fmt:approximateduration', td=td) |
9 | 116 | 'a minute' | 116 | '1 minute' |
10 | 117 | >>> td = timedelta(seconds=88.123) | 117 | >>> td = timedelta(seconds=88.123) |
11 | 118 | >>> test_tales('td/fmt:approximateduration', td=td) | 118 | >>> test_tales('td/fmt:approximateduration', td=td) |
13 | 119 | 'a minute' | 119 | '1 minute' |
14 | 120 | 120 | ||
15 | 121 | >>> td = timedelta(seconds=90) | 121 | >>> td = timedelta(seconds=90) |
16 | 122 | >>> test_tales('td/fmt:approximateduration', td=td) | 122 | >>> test_tales('td/fmt:approximateduration', td=td) |
18 | 123 | 'two minutes' | 123 | '2 minutes' |
19 | 124 | >>> td = timedelta(seconds=149.9181) | 124 | >>> td = timedelta(seconds=149.9181) |
20 | 125 | >>> test_tales('td/fmt:approximateduration', td=td) | 125 | >>> test_tales('td/fmt:approximateduration', td=td) |
22 | 126 | 'two minutes' | 126 | '2 minutes' |
23 | 127 | 127 | ||
24 | 128 | >>> td = timedelta(seconds=150) | 128 | >>> td = timedelta(seconds=150) |
25 | 129 | >>> test_tales('td/fmt:approximateduration', td=td) | 129 | >>> test_tales('td/fmt:approximateduration', td=td) |
27 | 130 | 'three minutes' | 130 | '3 minutes' |
28 | 131 | >>> td = timedelta(seconds=199) | 131 | >>> td = timedelta(seconds=199) |
29 | 132 | >>> test_tales('td/fmt:approximateduration', td=td) | 132 | >>> test_tales('td/fmt:approximateduration', td=td) |
31 | 133 | 'three minutes' | 133 | '3 minutes' |
32 | 134 | 134 | ||
33 | 135 | >>> td = timedelta(seconds=330) | 135 | >>> td = timedelta(seconds=330) |
34 | 136 | >>> test_tales('td/fmt:approximateduration', td=td) | 136 | >>> test_tales('td/fmt:approximateduration', td=td) |
36 | 137 | 'six minutes' | 137 | '6 minutes' |
37 | 138 | >>> td = timedelta(seconds=375.1) | 138 | >>> td = timedelta(seconds=375.1) |
38 | 139 | >>> test_tales('td/fmt:approximateduration', td=td) | 139 | >>> test_tales('td/fmt:approximateduration', td=td) |
40 | 140 | 'six minutes' | 140 | '6 minutes' |
41 | 141 | 141 | ||
42 | 142 | >>> td = timedelta(seconds=645) | 142 | >>> td = timedelta(seconds=645) |
43 | 143 | >>> test_tales('td/fmt:approximateduration', td=td) | 143 | >>> test_tales('td/fmt:approximateduration', td=td) |
44 | @@ -156,11 +156,11 @@ | |||
45 | 156 | 156 | ||
46 | 157 | >>> td = timedelta(seconds=3570) | 157 | >>> td = timedelta(seconds=3570) |
47 | 158 | >>> test_tales('td/fmt:approximateduration', td=td) | 158 | >>> test_tales('td/fmt:approximateduration', td=td) |
49 | 159 | 'an hour' | 159 | '1 hour' |
50 | 160 | 160 | ||
51 | 161 | >>> td = timedelta(seconds=3899.99999) | 161 | >>> td = timedelta(seconds=3899.99999) |
52 | 162 | >>> test_tales('td/fmt:approximateduration', td=td) | 162 | >>> test_tales('td/fmt:approximateduration', td=td) |
54 | 163 | 'an hour' | 163 | '1 hour' |
55 | 164 | 164 | ||
56 | 165 | >>> td = timedelta(seconds=5100.181) | 165 | >>> td = timedelta(seconds=5100.181) |
57 | 166 | >>> test_tales('td/fmt:approximateduration', td=td) | 166 | >>> test_tales('td/fmt:approximateduration', td=td) |
58 | @@ -176,7 +176,7 @@ | |||
59 | 176 | 176 | ||
60 | 177 | >>> td = timedelta(seconds=35850.2828) | 177 | >>> td = timedelta(seconds=35850.2828) |
61 | 178 | >>> test_tales('td/fmt:approximateduration', td=td) | 178 | >>> test_tales('td/fmt:approximateduration', td=td) |
63 | 179 | 'ten hours' | 179 | '10 hours' |
64 | 180 | 180 | ||
65 | 181 | >>> td = timedelta(seconds=38000) | 181 | >>> td = timedelta(seconds=38000) |
66 | 182 | >>> test_tales('td/fmt:approximateduration', td=td) | 182 | >>> test_tales('td/fmt:approximateduration', td=td) |
67 | @@ -188,11 +188,11 @@ | |||
68 | 188 | 188 | ||
69 | 189 | >>> td = timedelta(seconds=171000) | 189 | >>> td = timedelta(seconds=171000) |
70 | 190 | >>> test_tales('td/fmt:approximateduration', td=td) | 190 | >>> test_tales('td/fmt:approximateduration', td=td) |
72 | 191 | 'two days' | 191 | '2 days' |
73 | 192 | 192 | ||
74 | 193 | >>> td = timedelta(seconds=900000) | 193 | >>> td = timedelta(seconds=900000) |
75 | 194 | >>> test_tales('td/fmt:approximateduration', td=td) | 194 | >>> test_tales('td/fmt:approximateduration', td=td) |
77 | 195 | 'ten days' | 195 | '10 days' |
78 | 196 | 196 | ||
79 | 197 | >>> td = timedelta(seconds=1160000) | 197 | >>> td = timedelta(seconds=1160000) |
80 | 198 | >>> test_tales('td/fmt:approximateduration', td=td) | 198 | >>> test_tales('td/fmt:approximateduration', td=td) |
81 | @@ -200,11 +200,11 @@ | |||
82 | 200 | 200 | ||
83 | 201 | >>> td = timedelta(seconds=1500000) | 201 | >>> td = timedelta(seconds=1500000) |
84 | 202 | >>> test_tales('td/fmt:approximateduration', td=td) | 202 | >>> test_tales('td/fmt:approximateduration', td=td) |
86 | 203 | 'two weeks' | 203 | '2 weeks' |
87 | 204 | 204 | ||
88 | 205 | >>> td = timedelta(seconds=6000000) | 205 | >>> td = timedelta(seconds=6000000) |
89 | 206 | >>> test_tales('td/fmt:approximateduration', td=td) | 206 | >>> test_tales('td/fmt:approximateduration', td=td) |
91 | 207 | 'ten weeks' | 207 | '10 weeks' |
92 | 208 | 208 | ||
93 | 209 | >>> td = timedelta(seconds=6350400) | 209 | >>> td = timedelta(seconds=6350400) |
94 | 210 | >>> test_tales('td/fmt:approximateduration', td=td) | 210 | >>> test_tales('td/fmt:approximateduration', td=td) |
95 | 211 | 211 | ||
96 | === modified file 'lib/lp/app/browser/tales.py' | |||
97 | --- lib/lp/app/browser/tales.py 2011-06-30 13:11:41 +0000 | |||
98 | +++ lib/lp/app/browser/tales.py 2011-07-01 19:18:42 +0000 | |||
99 | @@ -2144,12 +2144,7 @@ | |||
100 | 2144 | if name == 'exactduration': | 2144 | if name == 'exactduration': |
101 | 2145 | return self.exactduration() | 2145 | return self.exactduration() |
102 | 2146 | elif name == 'approximateduration': | 2146 | elif name == 'approximateduration': |
109 | 2147 | use_words = True | 2147 | return self.approximateduration() |
104 | 2148 | if len(furtherPath) == 1: | ||
105 | 2149 | if 'use-digits' == furtherPath[0]: | ||
106 | 2150 | furtherPath.pop() | ||
107 | 2151 | use_words = False | ||
108 | 2152 | return self.approximateduration(use_words) | ||
110 | 2153 | else: | 2148 | else: |
111 | 2154 | raise TraversalError(name) | 2149 | raise TraversalError(name) |
112 | 2155 | 2150 | ||
113 | @@ -2179,19 +2174,12 @@ | |||
114 | 2179 | 2174 | ||
115 | 2180 | return ', '.join(parts) | 2175 | return ', '.join(parts) |
116 | 2181 | 2176 | ||
118 | 2182 | def approximateduration(self, use_words=True): | 2177 | def approximateduration(self): |
119 | 2183 | """Return a nicely-formatted approximate duration. | 2178 | """Return a nicely-formatted approximate duration. |
120 | 2184 | 2179 | ||
123 | 2185 | E.g. 'an hour', 'three minutes', '1 hour 10 minutes' and so | 2180 | E.g. '1 hour', '3 minutes', '1 hour 10 minutes' and so forth. |
122 | 2186 | forth. | ||
124 | 2187 | 2181 | ||
125 | 2188 | See https://launchpad.canonical.com/PresentingLengthsOfTime. | 2182 | See https://launchpad.canonical.com/PresentingLengthsOfTime. |
126 | 2189 | |||
127 | 2190 | :param use_words: Specificly determines whether or not to use | ||
128 | 2191 | words for numbers less than or equal to ten. Expanding | ||
129 | 2192 | numbers to words makes sense when the number is used in | ||
130 | 2193 | prose or a singualar item on a page, but when used in | ||
131 | 2194 | a table, the words do not work as well. | ||
132 | 2195 | """ | 2183 | """ |
133 | 2196 | # NOTE: There are quite a few "magic numbers" in this | 2184 | # NOTE: There are quite a few "magic numbers" in this |
134 | 2197 | # implementation; they are generally just figures pulled | 2185 | # implementation; they are generally just figures pulled |
135 | @@ -2224,10 +2212,8 @@ | |||
136 | 2224 | (35, '30 seconds'), | 2212 | (35, '30 seconds'), |
137 | 2225 | (45, '40 seconds'), | 2213 | (45, '40 seconds'), |
138 | 2226 | (55, '50 seconds'), | 2214 | (55, '50 seconds'), |
140 | 2227 | (90, 'a minute'), | 2215 | (90, '1 minute'), |
141 | 2228 | ] | 2216 | ] |
142 | 2229 | if not use_words: | ||
143 | 2230 | representation_in_seconds[-1] = (90, '1 minute') | ||
144 | 2231 | 2217 | ||
145 | 2232 | # Break representation_in_seconds into two pieces, to simplify | 2218 | # Break representation_in_seconds into two pieces, to simplify |
146 | 2233 | # finding the correct display value, through the use of the | 2219 | # finding the correct display value, through the use of the |
147 | @@ -2235,7 +2221,7 @@ | |||
148 | 2235 | second_boundaries, display_values = zip(*representation_in_seconds) | 2221 | second_boundaries, display_values = zip(*representation_in_seconds) |
149 | 2236 | 2222 | ||
150 | 2237 | # Is seconds small enough that we can produce a representation | 2223 | # Is seconds small enough that we can produce a representation |
152 | 2238 | # in seconds (up to 'a minute'?) | 2224 | # in seconds (up to '1 minute'?) |
153 | 2239 | if seconds < second_boundaries[-1]: | 2225 | if seconds < second_boundaries[-1]: |
154 | 2240 | # Use the built-in bisection algorithm to locate the index | 2226 | # Use the built-in bisection algorithm to locate the index |
155 | 2241 | # of the item which "seconds" sorts after. | 2227 | # of the item which "seconds" sorts after. |
156 | @@ -2244,34 +2230,17 @@ | |||
157 | 2244 | # Return the corresponding display value. | 2230 | # Return the corresponding display value. |
158 | 2245 | return display_values[matching_element_index] | 2231 | return display_values[matching_element_index] |
159 | 2246 | 2232 | ||
160 | 2247 | # More than a minute, approximately; our calculation strategy | ||
161 | 2248 | # changes. From this point forward, we may also need a | ||
162 | 2249 | # "verbal" representation of the number. (We never need a | ||
163 | 2250 | # verbal representation of "1", because we tend to special | ||
164 | 2251 | # case the number 1 for various approximations, and we usually | ||
165 | 2252 | # use a word like "an", instead of "one", e.g. "an hour") | ||
166 | 2253 | if use_words: | ||
167 | 2254 | number_name = { | ||
168 | 2255 | 2: 'two', 3: 'three', 4: 'four', 5: 'five', | ||
169 | 2256 | 6: 'six', 7: 'seven', 8: 'eight', 9: 'nine', | ||
170 | 2257 | 10: 'ten'} | ||
171 | 2258 | else: | ||
172 | 2259 | number_name = dict((number, number) for number in range(2, 11)) | ||
173 | 2260 | |||
174 | 2261 | # Convert seconds into minutes, and round it. | 2233 | # Convert seconds into minutes, and round it. |
175 | 2262 | minutes, remaining_seconds = divmod(seconds, 60) | 2234 | minutes, remaining_seconds = divmod(seconds, 60) |
176 | 2263 | minutes += remaining_seconds / 60.0 | 2235 | minutes += remaining_seconds / 60.0 |
177 | 2264 | minutes = int(round(minutes)) | 2236 | minutes = int(round(minutes)) |
178 | 2265 | 2237 | ||
179 | 2266 | if minutes <= 59: | 2238 | if minutes <= 59: |
181 | 2267 | return "%s minutes" % number_name.get(minutes, str(minutes)) | 2239 | return "%d minutes" % minutes |
182 | 2268 | 2240 | ||
183 | 2269 | # Is the duration less than an hour and 5 minutes? | 2241 | # Is the duration less than an hour and 5 minutes? |
184 | 2270 | if seconds < (60 + 5) * 60: | 2242 | if seconds < (60 + 5) * 60: |
189 | 2271 | if use_words: | 2243 | return "1 hour" |
186 | 2272 | return "an hour" | ||
187 | 2273 | else: | ||
188 | 2274 | return "1 hour" | ||
190 | 2275 | 2244 | ||
191 | 2276 | # Next phase: try and calculate an approximate duration | 2245 | # Next phase: try and calculate an approximate duration |
192 | 2277 | # greater than one hour, but fewer than ten hours, to a 10 | 2246 | # greater than one hour, but fewer than ten hours, to a 10 |
193 | @@ -2290,12 +2259,11 @@ | |||
194 | 2290 | else: | 2259 | else: |
195 | 2291 | return "%d hours %s minutes" % (hours, minutes) | 2260 | return "%d hours %s minutes" % (hours, minutes) |
196 | 2292 | else: | 2261 | else: |
199 | 2293 | number_as_text = number_name.get(hours, str(hours)) | 2262 | return "%d hours" % hours |
198 | 2294 | return "%s hours" % number_as_text | ||
200 | 2295 | 2263 | ||
201 | 2296 | # Is the duration less than ten and a half hours? | 2264 | # Is the duration less than ten and a half hours? |
202 | 2297 | if seconds < (10.5 * 3600): | 2265 | if seconds < (10.5 * 3600): |
204 | 2298 | return '%s hours' % number_name[10] | 2266 | return '10 hours' |
205 | 2299 | 2267 | ||
206 | 2300 | # Try to calculate the approximate number of hours, to a | 2268 | # Try to calculate the approximate number of hours, to a |
207 | 2301 | # maximum of 47. | 2269 | # maximum of 47. |
208 | @@ -2305,22 +2273,22 @@ | |||
209 | 2305 | 2273 | ||
210 | 2306 | # Is the duration fewer than two and a half days? | 2274 | # Is the duration fewer than two and a half days? |
211 | 2307 | if seconds < (2.5 * 24 * 3600): | 2275 | if seconds < (2.5 * 24 * 3600): |
213 | 2308 | return '%s days' % number_name[2] | 2276 | return '2 days' |
214 | 2309 | 2277 | ||
215 | 2310 | # Try to approximate to day granularity, up to a maximum of 13 | 2278 | # Try to approximate to day granularity, up to a maximum of 13 |
216 | 2311 | # days. | 2279 | # days. |
217 | 2312 | days = int(round(seconds / (24 * 3600))) | 2280 | days = int(round(seconds / (24 * 3600))) |
218 | 2313 | if days <= 13: | 2281 | if days <= 13: |
220 | 2314 | return "%s days" % number_name.get(days, str(days)) | 2282 | return "%s days" % days |
221 | 2315 | 2283 | ||
222 | 2316 | # Is the duration fewer than two and a half weeks? | 2284 | # Is the duration fewer than two and a half weeks? |
223 | 2317 | if seconds < (2.5 * 7 * 24 * 3600): | 2285 | if seconds < (2.5 * 7 * 24 * 3600): |
225 | 2318 | return '%s weeks' % number_name[2] | 2286 | return '2 weeks' |
226 | 2319 | 2287 | ||
227 | 2320 | # If we've made it this far, we'll calculate the duration to a | 2288 | # If we've made it this far, we'll calculate the duration to a |
228 | 2321 | # granularity of weeks, once and for all. | 2289 | # granularity of weeks, once and for all. |
229 | 2322 | weeks = int(round(seconds / (7 * 24 * 3600.0))) | 2290 | weeks = int(round(seconds / (7 * 24 * 3600.0))) |
231 | 2323 | return "%s weeks" % number_name.get(weeks, str(weeks)) | 2291 | return "%d weeks" % weeks |
232 | 2324 | 2292 | ||
233 | 2325 | 2293 | ||
234 | 2326 | class LinkFormatterAPI(ObjectFormatterAPI): | 2294 | class LinkFormatterAPI(ObjectFormatterAPI): |
235 | 2327 | 2295 | ||
236 | === modified file 'lib/lp/app/doc/tales.txt' | |||
237 | --- lib/lp/app/doc/tales.txt 2011-06-23 13:10:40 +0000 | |||
238 | +++ lib/lp/app/doc/tales.txt 2011-07-01 19:18:42 +0000 | |||
239 | @@ -1409,9 +1409,6 @@ | |||
240 | 1409 | '2 days, 0 hours, 0 minutes, 0.0 seconds' | 1409 | '2 days, 0 hours, 0 minutes, 0.0 seconds' |
241 | 1410 | 1410 | ||
242 | 1411 | >>> test_tales('delta/fmt:approximateduration', delta=delta) | 1411 | >>> test_tales('delta/fmt:approximateduration', delta=delta) |
243 | 1412 | 'two days' | ||
244 | 1413 | |||
245 | 1414 | >>> test_tales('delta/fmt:approximateduration/use-digits', delta=delta) | ||
246 | 1415 | '2 days' | 1412 | '2 days' |
247 | 1416 | 1413 | ||
248 | 1417 | >>> delta = timedelta(days=12, hours=6, minutes=30) | 1414 | >>> delta = timedelta(days=12, hours=6, minutes=30) |
249 | @@ -1421,17 +1418,11 @@ | |||
250 | 1421 | >>> test_tales('delta/fmt:approximateduration', delta=delta) | 1418 | >>> test_tales('delta/fmt:approximateduration', delta=delta) |
251 | 1422 | '12 days' | 1419 | '12 days' |
252 | 1423 | 1420 | ||
253 | 1424 | >>> test_tales('delta/fmt:approximateduration/use-digits', delta=delta) | ||
254 | 1425 | '12 days' | ||
255 | 1426 | |||
256 | 1427 | >>> delta = timedelta(days=0, minutes=62) | 1421 | >>> delta = timedelta(days=0, minutes=62) |
257 | 1428 | >>> test_tales('delta/fmt:exactduration', delta=delta) | 1422 | >>> test_tales('delta/fmt:exactduration', delta=delta) |
258 | 1429 | '1 hour, 2 minutes, 0.0 seconds' | 1423 | '1 hour, 2 minutes, 0.0 seconds' |
259 | 1430 | 1424 | ||
260 | 1431 | >>> test_tales('delta/fmt:approximateduration', delta=delta) | 1425 | >>> test_tales('delta/fmt:approximateduration', delta=delta) |
261 | 1432 | 'an hour' | ||
262 | 1433 | |||
263 | 1434 | >>> test_tales('delta/fmt:approximateduration/use-digits', delta=delta) | ||
264 | 1435 | '1 hour' | 1426 | '1 hour' |
265 | 1436 | 1427 | ||
266 | 1437 | >>> delta = timedelta(days=0, minutes=82) | 1428 | >>> delta = timedelta(days=0, minutes=82) |
267 | @@ -1441,17 +1432,11 @@ | |||
268 | 1441 | >>> test_tales('delta/fmt:approximateduration', delta=delta) | 1432 | >>> test_tales('delta/fmt:approximateduration', delta=delta) |
269 | 1442 | '1 hour 20 minutes' | 1433 | '1 hour 20 minutes' |
270 | 1443 | 1434 | ||
271 | 1444 | >>> test_tales('delta/fmt:approximateduration/use-digits', delta=delta) | ||
272 | 1445 | '1 hour 20 minutes' | ||
273 | 1446 | |||
274 | 1447 | >>> delta = timedelta(days=0, seconds=62) | 1435 | >>> delta = timedelta(days=0, seconds=62) |
275 | 1448 | >>> test_tales('delta/fmt:exactduration', delta=delta) | 1436 | >>> test_tales('delta/fmt:exactduration', delta=delta) |
276 | 1449 | '1 minute, 2.0 seconds' | 1437 | '1 minute, 2.0 seconds' |
277 | 1450 | 1438 | ||
278 | 1451 | >>> test_tales('delta/fmt:approximateduration', delta=delta) | 1439 | >>> test_tales('delta/fmt:approximateduration', delta=delta) |
279 | 1452 | 'a minute' | ||
280 | 1453 | |||
281 | 1454 | >>> test_tales('delta/fmt:approximateduration/use-digits', delta=delta) | ||
282 | 1455 | '1 minute' | 1440 | '1 minute' |
283 | 1456 | 1441 | ||
284 | 1457 | >>> delta = timedelta(days=0, seconds=90) | 1442 | >>> delta = timedelta(days=0, seconds=90) |
285 | @@ -1459,9 +1444,6 @@ | |||
286 | 1459 | '1 minute, 30.0 seconds' | 1444 | '1 minute, 30.0 seconds' |
287 | 1460 | 1445 | ||
288 | 1461 | >>> test_tales('delta/fmt:approximateduration', delta=delta) | 1446 | >>> test_tales('delta/fmt:approximateduration', delta=delta) |
289 | 1462 | 'two minutes' | ||
290 | 1463 | |||
291 | 1464 | >>> test_tales('delta/fmt:approximateduration/use-digits', delta=delta) | ||
292 | 1465 | '2 minutes' | 1447 | '2 minutes' |
293 | 1466 | 1448 | ||
294 | 1467 | 1449 | ||
295 | 1468 | 1450 | ||
296 | === modified file 'lib/lp/bugs/templates/bugtarget-patches.pt' | |||
297 | --- lib/lp/bugs/templates/bugtarget-patches.pt 2011-02-03 20:54:43 +0000 | |||
298 | +++ lib/lp/bugs/templates/bugtarget-patches.pt 2011-07-01 19:18:42 +0000 | |||
299 | @@ -75,7 +75,7 @@ | |||
300 | 75 | age python:view.patchAge(patch)" | 75 | age python:view.patchAge(patch)" |
301 | 76 | tal:attributes="id string:patch-cell-${repeat/patch_task/index}"> | 76 | tal:attributes="id string:patch-cell-${repeat/patch_task/index}"> |
302 | 77 | <a tal:attributes="href python:view.proxiedUrlForLibraryFile(patch)" | 77 | <a tal:attributes="href python:view.proxiedUrlForLibraryFile(patch)" |
304 | 78 | tal:content="age/fmt:approximateduration/use-digits"></a> | 78 | tal:content="age/fmt:approximateduration"></a> |
305 | 79 | <div class="popupTitle" | 79 | <div class="popupTitle" |
306 | 80 | tal:attributes="id string:patch-popup-${repeat/patch_task/index};"> | 80 | tal:attributes="id string:patch-popup-${repeat/patch_task/index};"> |
307 | 81 | <p tal:define="submitter patch/message/owner"> | 81 | <p tal:define="submitter patch/message/owner"> |
308 | 82 | 82 | ||
309 | === modified file 'lib/lp/code/mail/tests/test_sourcepackagerecipebuild.py' | |||
310 | --- lib/lp/code/mail/tests/test_sourcepackagerecipebuild.py 2011-01-06 07:09:57 +0000 | |||
311 | +++ lib/lp/code/mail/tests/test_sourcepackagerecipebuild.py 2011-07-01 19:18:42 +0000 | |||
312 | @@ -26,7 +26,7 @@ | |||
313 | 26 | * Recipe: person/recipe | 26 | * Recipe: person/recipe |
314 | 27 | * Archive: archiveowner/ppa | 27 | * Archive: archiveowner/ppa |
315 | 28 | * Distroseries: distroseries | 28 | * Distroseries: distroseries |
317 | 29 | * Duration: five minutes | 29 | * Duration: 5 minutes |
318 | 30 | * Build Log: %s | 30 | * Build Log: %s |
319 | 31 | * Upload Log: | 31 | * Upload Log: |
320 | 32 | * Builder: http://launchpad.dev/builders/bob | 32 | * Builder: http://launchpad.dev/builders/bob |
321 | 33 | 33 | ||
322 | === modified file 'lib/lp/code/stories/codeimport/xx-codeimport-results.txt' | |||
323 | --- lib/lp/code/stories/codeimport/xx-codeimport-results.txt 2011-06-21 01:39:18 +0000 | |||
324 | +++ lib/lp/code/stories/codeimport/xx-codeimport-results.txt 2011-07-01 19:18:42 +0000 | |||
325 | @@ -29,19 +29,19 @@ | |||
326 | 29 | >>> import_results = find_tag_by_id(browser.contents, 'import-results') | 29 | >>> import_results = find_tag_by_id(browser.contents, 'import-results') |
327 | 30 | >>> print extract_text(import_results).replace('—', '--') | 30 | >>> print extract_text(import_results).replace('—', '--') |
328 | 31 | Import started on 2007-12-07 on odin and finished on 2007-12-07 | 31 | Import started on 2007-12-07 on odin and finished on 2007-12-07 |
330 | 32 | taking seven hours -- see the log | 32 | taking 7 hours -- see the log |
331 | 33 | Import started on 2007-12-06 on odin and finished on 2007-12-06 | 33 | Import started on 2007-12-06 on odin and finished on 2007-12-06 |
333 | 34 | taking six hours -- see the log | 34 | taking 6 hours -- see the log |
334 | 35 | Import started on 2007-12-05 on odin and finished on 2007-12-05 | 35 | Import started on 2007-12-05 on odin and finished on 2007-12-05 |
336 | 36 | taking five hours -- see the log | 36 | taking 5 hours -- see the log |
337 | 37 | Import started on 2007-12-04 on odin and finished on 2007-12-04 | 37 | Import started on 2007-12-04 on odin and finished on 2007-12-04 |
339 | 38 | taking four hours -- see the log | 38 | taking 4 hours -- see the log |
340 | 39 | Import started on 2007-12-03 on odin and finished on 2007-12-03 | 39 | Import started on 2007-12-03 on odin and finished on 2007-12-03 |
342 | 40 | taking three hours -- see the log | 40 | taking 3 hours -- see the log |
343 | 41 | Import started on 2007-12-02 on odin and finished on 2007-12-02 | 41 | Import started on 2007-12-02 on odin and finished on 2007-12-02 |
345 | 42 | taking two hours -- see the log | 42 | taking 2 hours -- see the log |
346 | 43 | Import started on 2007-12-01 on odin and finished on 2007-12-01 | 43 | Import started on 2007-12-01 on odin and finished on 2007-12-01 |
348 | 44 | taking an hour -- see the log | 44 | taking 1 hour -- see the log |
349 | 45 | 45 | ||
350 | 46 | Each of the lines is prefixed with a tick if the result status was | 46 | Each of the lines is prefixed with a tick if the result status was |
351 | 47 | success, or a cross if the status was a failure. The title of the image | 47 | success, or a cross if the status was a failure. The title of the image |
352 | 48 | 48 | ||
353 | === modified file 'lib/lp/registry/browser/tests/poll-views.txt' | |||
354 | --- lib/lp/registry/browser/tests/poll-views.txt 2011-01-05 19:18:57 +0000 | |||
355 | +++ lib/lp/registry/browser/tests/poll-views.txt 2011-07-01 19:18:42 +0000 | |||
356 | @@ -101,7 +101,7 @@ | |||
357 | 101 | >>> print extract_text(view.render()) | 101 | >>> print extract_text(view.render()) |
358 | 102 | Polls | 102 | Polls |
359 | 103 | title - closes on ... | 103 | title - closes on ... |
361 | 104 | You have seven days left to vote in this poll. | 104 | You have 7 days left to vote in this poll. |
362 | 105 | Show polls | 105 | Show polls |
363 | 106 | 106 | ||
364 | 107 | >>> login_person(owner) | 107 | >>> login_person(owner) |
365 | @@ -109,7 +109,7 @@ | |||
366 | 109 | >>> print extract_text(view.render()) | 109 | >>> print extract_text(view.render()) |
367 | 110 | Polls | 110 | Polls |
368 | 111 | title - closes on ... | 111 | title - closes on ... |
370 | 112 | You have seven days left to vote in this poll. | 112 | You have 7 days left to vote in this poll. |
371 | 113 | Show polls | 113 | Show polls |
372 | 114 | Create a poll | 114 | Create a poll |
373 | 115 | 115 | ||
374 | 116 | 116 | ||
375 | === modified file 'lib/lp/registry/doc/teammembership-email-notification.txt' | |||
376 | --- lib/lp/registry/doc/teammembership-email-notification.txt 2011-05-31 05:25:55 +0000 | |||
377 | +++ lib/lp/registry/doc/teammembership-email-notification.txt 2011-07-01 19:18:42 +0000 | |||
378 | @@ -446,7 +446,7 @@ | |||
379 | 446 | To: colin.watson@ubuntulinux.com | 446 | To: colin.watson@ubuntulinux.com |
380 | 447 | Subject: Your membership in ubuntu-team is about to expire | 447 | Subject: Your membership in ubuntu-team is about to expire |
381 | 448 | <BLANKLINE> | 448 | <BLANKLINE> |
383 | 449 | On ..., nine days from now, your membership | 449 | On ..., 9 days from now, your membership |
384 | 450 | in the Ubuntu Team (ubuntu-team) Launchpad team | 450 | in the Ubuntu Team (ubuntu-team) Launchpad team |
385 | 451 | is due to expire. | 451 | is due to expire. |
386 | 452 | <http://launchpad.dev/~ubuntu-team> | 452 | <http://launchpad.dev/~ubuntu-team> |
387 | @@ -483,7 +483,7 @@ | |||
388 | 483 | To: beta-admin@launchpad.net | 483 | To: beta-admin@launchpad.net |
389 | 484 | Subject: launchpad-beta-testers will expire soon from ubuntu-team | 484 | Subject: launchpad-beta-testers will expire soon from ubuntu-team |
390 | 485 | <BLANKLINE> | 485 | <BLANKLINE> |
392 | 486 | On ..., nine days from now, the membership | 486 | On ..., 9 days from now, the membership |
393 | 487 | of Launchpad Beta Testers (launchpad-beta-testers) (which you are | 487 | of Launchpad Beta Testers (launchpad-beta-testers) (which you are |
394 | 488 | the owner of) in the Ubuntu Team (ubuntu-team) Launchpad team | 488 | the owner of) in the Ubuntu Team (ubuntu-team) Launchpad team |
395 | 489 | is due to expire. | 489 | is due to expire. |
396 | @@ -517,7 +517,7 @@ | |||
397 | 517 | To: colin.watson@ubuntulinux.com | 517 | To: colin.watson@ubuntulinux.com |
398 | 518 | Subject: Your membership in ubuntu-team is about to expire | 518 | Subject: Your membership in ubuntu-team is about to expire |
399 | 519 | <BLANKLINE> | 519 | <BLANKLINE> |
401 | 520 | On ..., nine days from now, your membership | 520 | On ..., 9 days from now, your membership |
402 | 521 | in the Ubuntu Team (ubuntu-team) Launchpad team | 521 | in the Ubuntu Team (ubuntu-team) Launchpad team |
403 | 522 | is due to expire. | 522 | is due to expire. |
404 | 523 | <http://launchpad.dev/~ubuntu-team> | 523 | <http://launchpad.dev/~ubuntu-team> |
405 | @@ -539,7 +539,7 @@ | |||
406 | 539 | To: beta-admin@launchpad.net | 539 | To: beta-admin@launchpad.net |
407 | 540 | Subject: launchpad-beta-testers will expire soon from ubuntu-team | 540 | Subject: launchpad-beta-testers will expire soon from ubuntu-team |
408 | 541 | <BLANKLINE> | 541 | <BLANKLINE> |
410 | 542 | On ..., nine days from now, the membership | 542 | On ..., 9 days from now, the membership |
411 | 543 | of Launchpad Beta Testers (launchpad-beta-testers) (which you are | 543 | of Launchpad Beta Testers (launchpad-beta-testers) (which you are |
412 | 544 | the owner of) in the Ubuntu Team (ubuntu-team) Launchpad team | 544 | the owner of) in the Ubuntu Team (ubuntu-team) Launchpad team |
413 | 545 | is due to expire. | 545 | is due to expire. |
414 | @@ -575,7 +575,7 @@ | |||
415 | 575 | To: test@canonical.com | 575 | To: test@canonical.com |
416 | 576 | Subject: Your membership in landscape-developers is about to expire | 576 | Subject: Your membership in landscape-developers is about to expire |
417 | 577 | <BLANKLINE> | 577 | <BLANKLINE> |
419 | 578 | On ..., nine days from now, your membership | 578 | On ..., 9 days from now, your membership |
420 | 579 | in the Landscape Developers (landscape-developers) Launchpad team | 579 | in the Landscape Developers (landscape-developers) Launchpad team |
421 | 580 | is due to expire. | 580 | is due to expire. |
422 | 581 | <http://launchpad.dev/~landscape-developers> | 581 | <http://launchpad.dev/~landscape-developers> |
423 | 582 | 582 | ||
424 | === modified file 'lib/lp/soyuz/doc/build-failedtoupload-workflow.txt' | |||
425 | --- lib/lp/soyuz/doc/build-failedtoupload-workflow.txt 2011-05-04 02:45:25 +0000 | |||
426 | +++ lib/lp/soyuz/doc/build-failedtoupload-workflow.txt 2011-07-01 19:18:42 +0000 | |||
427 | @@ -87,7 +87,7 @@ | |||
428 | 87 | * Archive: ubuntu primary archive | 87 | * Archive: ubuntu primary archive |
429 | 88 | * Component: main | 88 | * Component: main |
430 | 89 | * State: Failed to upload | 89 | * State: Failed to upload |
432 | 90 | * Duration: a minute | 90 | * Duration: 1 minute |
433 | 91 | * Build Log: http://launchpad.dev/ubuntu/+source/cdrkit/1.0/+build/22/+fil= | 91 | * Build Log: http://launchpad.dev/ubuntu/+source/cdrkit/1.0/+build/22/+fil= |
434 | 92 | es/netapplet-1.0.0.tar.gz | 92 | es/netapplet-1.0.0.tar.gz |
435 | 93 | * Builder: http://launchpad.dev/builders/bob | 93 | * Builder: http://launchpad.dev/builders/bob |
436 | 94 | 94 | ||
437 | === modified file 'lib/lp/soyuz/stories/soyuz/xx-buildfarm-index.txt' | |||
438 | --- lib/lp/soyuz/stories/soyuz/xx-buildfarm-index.txt 2011-05-03 02:39:30 +0000 | |||
439 | +++ lib/lp/soyuz/stories/soyuz/xx-buildfarm-index.txt 2011-07-01 19:18:42 +0000 | |||
440 | @@ -22,7 +22,7 @@ | |||
441 | 22 | frog 386 Disabled | 22 | frog 386 Disabled |
442 | 23 | Official distributions build status | 23 | Official distributions build status |
443 | 24 | Processor Builders Queue | 24 | Processor Builders Queue |
445 | 25 | 386 1 1 job (a minute) | 25 | 386 1 1 job (1 minute) |
446 | 26 | PPA build status | 26 | PPA build status |
447 | 27 | Processor Builders Queue | 27 | Processor Builders Queue |
448 | 28 | 386 0 empty | 28 | 386 0 empty |
449 | @@ -44,7 +44,7 @@ | |||
450 | 44 | ... find_tag_by_id(anon_browser.contents, 'official-queue-status')) | 44 | ... find_tag_by_id(anon_browser.contents, 'official-queue-status')) |
451 | 45 | Official distributions build status | 45 | Official distributions build status |
452 | 46 | Processor Builders Queue | 46 | Processor Builders Queue |
454 | 47 | 386 1 1 job (a minute) | 47 | 386 1 1 job (1 minute) |
455 | 48 | 48 | ||
456 | 49 | >>> print extract_text( | 49 | >>> print extract_text( |
457 | 50 | ... find_tag_by_id(anon_browser.contents, 'ppa-queue-status',)) | 50 | ... find_tag_by_id(anon_browser.contents, 'ppa-queue-status',)) |
458 | @@ -77,7 +77,7 @@ | |||
459 | 77 | ... find_tag_by_id(anon_browser.contents, 'ppa-queue-status')) | 77 | ... find_tag_by_id(anon_browser.contents, 'ppa-queue-status')) |
460 | 78 | PPA build status | 78 | PPA build status |
461 | 79 | Processor Builders Queue | 79 | Processor Builders Queue |
463 | 80 | 386 0 1 job (a minute) | 80 | 386 0 1 job (1 minute) |
464 | 81 | 81 | ||
465 | 82 | If the archive for the build does not require virtual builders, then | 82 | If the archive for the build does not require virtual builders, then |
466 | 83 | the pending job will appear in the 'official' queue. Since the build | 83 | the pending job will appear in the 'official' queue. Since the build |
467 | @@ -99,7 +99,7 @@ | |||
468 | 99 | ... find_tag_by_id(anon_browser.contents, 'official-queue-status')) | 99 | ... find_tag_by_id(anon_browser.contents, 'official-queue-status')) |
469 | 100 | Official distributions build status | 100 | Official distributions build status |
470 | 101 | Processor Builders Queue | 101 | Processor Builders Queue |
472 | 102 | 386 1 2 jobs (two minutes) | 102 | 386 1 2 jobs (2 minutes) |
473 | 103 | 103 | ||
474 | 104 | From this page, users with the appropriate permission can register new | 104 | From this page, users with the appropriate permission can register new |
475 | 105 | builders. | 105 | builders. |
476 | 106 | 106 | ||
477 | === modified file 'lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt' | |||
478 | --- lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt 2011-06-09 10:50:25 +0000 | |||
479 | +++ lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt 2011-07-01 19:18:42 +0000 | |||
480 | @@ -144,12 +144,12 @@ | |||
481 | 144 | Successfully built | 144 | Successfully built |
482 | 145 | i386 build of commercialpackage 1.0-1 in ubuntu breezy-autotest RELEASE | 145 | i386 build of commercialpackage 1.0-1 in ubuntu breezy-autotest RELEASE |
483 | 146 | Build started on 2007-08-09 on an unknown build machine and finished | 146 | Build started on 2007-08-09 on an unknown build machine and finished |
485 | 147 | on 2007-08-09 taking ten minutes | 147 | on 2007-08-09 taking 10 minutes |
486 | 148 | ------------------------------ | 148 | ------------------------------ |
487 | 149 | Failed to upload | 149 | Failed to upload |
488 | 150 | i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE | 150 | i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE |
489 | 151 | Build started on 2007-04-19 on Bob The Builder and finished on 2007-04-20 | 151 | Build started on 2007-04-19 on Bob The Builder and finished on 2007-04-20 |
491 | 152 | taking a minute — see the log | 152 | taking 1 minute — see the log |
492 | 153 | ------------------------------ | 153 | ------------------------------ |
493 | 154 | Failed to build | 154 | Failed to build |
494 | 155 | i386 build of cdrkit 1.0 in ubuntu warty RELEASE | 155 | i386 build of cdrkit 1.0 in ubuntu warty RELEASE |
495 | @@ -178,7 +178,7 @@ | |||
496 | 178 | Missing dependencies: | 178 | Missing dependencies: |
497 | 179 | cpp (>= 4:4.0.1-3), gcc-4.0 (>= 4.0.1-2) | 179 | cpp (>= 4:4.0.1-3), gcc-4.0 (>= 4.0.1-2) |
498 | 180 | Build started on 2006-02-27 on Bob The Builder and finished on 2006-02-28 | 180 | Build started on 2006-02-27 on Bob The Builder and finished on 2006-02-28 |
500 | 181 | taking six minutes — see the log | 181 | taking 6 minutes — see the log |
501 | 182 | ------------------------------ | 182 | ------------------------------ |
502 | 183 | Needs building | 183 | Needs building |
503 | 184 | i386 build of alsa-utils 1.0.9a-4ubuntu1 in ubuntu hoary RELEASE | 184 | i386 build of alsa-utils 1.0.9a-4ubuntu1 in ubuntu hoary RELEASE |
504 | @@ -201,22 +201,22 @@ | |||
505 | 201 | Successfully built | 201 | Successfully built |
506 | 202 | i386 build of commercialpackage 1.0-1 in ubuntu breezy-autotest RELEASE | 202 | i386 build of commercialpackage 1.0-1 in ubuntu breezy-autotest RELEASE |
507 | 203 | Build started on 2007-08-09 on an unknown build machine and finished | 203 | Build started on 2007-08-09 on an unknown build machine and finished |
509 | 204 | on 2007-08-09 taking ten minutes | 204 | on 2007-08-09 taking 10 minutes |
510 | 205 | ------------------------------ | 205 | ------------------------------ |
511 | 206 | Successfully built | 206 | Successfully built |
512 | 207 | i386 build of pmount 0.1-1 in ubuntu hoary RELEASE | 207 | i386 build of pmount 0.1-1 in ubuntu hoary RELEASE |
513 | 208 | Build started on 2005-03-24 on Bob The Builder and finished on 2005-03-25 | 208 | Build started on 2005-03-24 on Bob The Builder and finished on 2005-03-25 |
515 | 209 | taking a minute — see the log | 209 | taking 1 minute — see the log |
516 | 210 | ------------------------------ | 210 | ------------------------------ |
517 | 211 | Successfully built | 211 | Successfully built |
518 | 212 | hppa build of pmount 0.1-1 in ubuntu hoary RELEASE | 212 | hppa build of pmount 0.1-1 in ubuntu hoary RELEASE |
519 | 213 | Build started on 2005-03-24 on Bob The Builder and finished on 2005-03-25 | 213 | Build started on 2005-03-24 on Bob The Builder and finished on 2005-03-25 |
521 | 214 | taking a minute — see the log | 214 | taking 1 minute — see the log |
522 | 215 | ------------------------------ | 215 | ------------------------------ |
523 | 216 | Successfully built | 216 | Successfully built |
524 | 217 | i386 build of pmount 0.1-1 in ubuntu breezy-autotest RELEASE | 217 | i386 build of pmount 0.1-1 in ubuntu breezy-autotest RELEASE |
525 | 218 | Build started on 2005-03-24 on Bob The Builder and finished on 2005-03-25 | 218 | Build started on 2005-03-24 on Bob The Builder and finished on 2005-03-25 |
527 | 219 | taking a minute — see the log | 219 | taking 1 minute — see the log |
528 | 220 | ------------------------------ | 220 | ------------------------------ |
529 | 221 | 221 | ||
530 | 222 | >>> anon_browser.getControl(name="build_state").value = ['depwait'] | 222 | >>> anon_browser.getControl(name="build_state").value = ['depwait'] |
531 | @@ -228,7 +228,7 @@ | |||
532 | 228 | Missing dependencies: | 228 | Missing dependencies: |
533 | 229 | cpp (>= 4:4.0.1-3), gcc-4.0 (>= 4.0.1-2) | 229 | cpp (>= 4:4.0.1-3), gcc-4.0 (>= 4.0.1-2) |
534 | 230 | Build started on 2006-02-27 on Bob The Builder and finished on 2006-02-28 | 230 | Build started on 2006-02-27 on Bob The Builder and finished on 2006-02-28 |
536 | 231 | taking six minutes — see the log | 231 | taking 6 minutes — see the log |
537 | 232 | ------------------------------ | 232 | ------------------------------ |
538 | 233 | 233 | ||
539 | 234 | >>> anon_browser.getControl(name="build_state").value = ['failed'] | 234 | >>> anon_browser.getControl(name="build_state").value = ['failed'] |
540 | @@ -248,7 +248,7 @@ | |||
541 | 248 | Failed to build | 248 | Failed to build |
542 | 249 | i386 build of pmount 0.1-1 in ubuntu warty RELEASE | 249 | i386 build of pmount 0.1-1 in ubuntu warty RELEASE |
543 | 250 | Build started on 2005-10-01 on Bob The Builder and finished on 2005-10-02 | 250 | Build started on 2005-10-01 on Bob The Builder and finished on 2005-10-02 |
545 | 251 | taking three minutes — see the log | 251 | taking 3 minutes — see the log |
546 | 252 | ------------------------------ | 252 | ------------------------------ |
547 | 253 | 253 | ||
548 | 254 | == Form errors == | 254 | == Form errors == |
549 | @@ -314,17 +314,17 @@ | |||
550 | 314 | Successfully built | 314 | Successfully built |
551 | 315 | i386 build of pmount 0.1-1 in ubuntu warty RELEASE | 315 | i386 build of pmount 0.1-1 in ubuntu warty RELEASE |
552 | 316 | Build started on 2007-07-23 and finished on 2007-07-24 | 316 | Build started on 2007-07-23 and finished on 2007-07-24 |
554 | 317 | taking a minute — see the log | 317 | taking 1 minute — see the log |
555 | 318 | ------------------------------ | 318 | ------------------------------ |
556 | 319 | Failed to build | 319 | Failed to build |
557 | 320 | i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE | 320 | i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE |
558 | 321 | Build started on 2007-07-07 and finished on 2007-07-08 | 321 | Build started on 2007-07-07 and finished on 2007-07-08 |
560 | 322 | taking a minute — see the log | 322 | taking 1 minute — see the log |
561 | 323 | ------------------------------ | 323 | ------------------------------ |
562 | 324 | Failed to build | 324 | Failed to build |
563 | 325 | i386 build of cdrkit 1.0 in ubuntu warty RELEASE | 325 | i386 build of cdrkit 1.0 in ubuntu warty RELEASE |
564 | 326 | Build started on 2007-05-29 and finished on 2007-05-30 | 326 | Build started on 2007-05-29 and finished on 2007-05-30 |
566 | 327 | taking a minute — see the log | 327 | taking 1 minute — see the log |
567 | 328 | ------------------------------ | 328 | ------------------------------ |
568 | 329 | 329 | ||
569 | 330 | In the second batch, additionally to the failed-to-build builds | 330 | In the second batch, additionally to the failed-to-build builds |
570 | @@ -337,7 +337,7 @@ | |||
571 | 337 | Failed to upload | 337 | Failed to upload |
572 | 338 | i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE | 338 | i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE |
573 | 339 | Build started on 2007-04-19 and finished on 2007-04-20 | 339 | Build started on 2007-04-19 and finished on 2007-04-20 |
575 | 340 | taking a minute — see the log | 340 | taking 1 minute — see the log |
576 | 341 | ------------------------------ | 341 | ------------------------------ |
577 | 342 | Failed to build | 342 | Failed to build |
578 | 343 | i386 build of foobar 1.0 in ubuntu warty RELEASE | 343 | i386 build of foobar 1.0 in ubuntu warty RELEASE |
579 | @@ -365,7 +365,7 @@ | |||
580 | 365 | Missing dependencies: | 365 | Missing dependencies: |
581 | 366 | cpp (>= 4:4.0.1-3), gcc-4.0 (>= 4.0.1-2) | 366 | cpp (>= 4:4.0.1-3), gcc-4.0 (>= 4.0.1-2) |
582 | 367 | Build started on 2006-02-27 and finished on 2006-02-28 | 367 | Build started on 2006-02-27 and finished on 2006-02-28 |
584 | 368 | taking six minutes — see the log | 368 | taking 6 minutes — see the log |
585 | 369 | ------------------------------ | 369 | ------------------------------ |
586 | 370 | ... | 370 | ... |
587 | 371 | 371 | ||
588 | 372 | 372 | ||
589 | === modified file 'lib/lp/translations/browser/tests/test_baseexportview.py' | |||
590 | --- lib/lp/translations/browser/tests/test_baseexportview.py 2010-10-05 00:08:16 +0000 | |||
591 | +++ lib/lp/translations/browser/tests/test_baseexportview.py 2011-07-01 19:18:42 +0000 | |||
592 | @@ -201,7 +201,7 @@ | |||
593 | 201 | 201 | ||
594 | 202 | backlog = timedelta(hours=2) | 202 | backlog = timedelta(hours=2) |
595 | 203 | self.assertEqual( | 203 | self.assertEqual( |
597 | 204 | "The backlog is approximately two hours.", | 204 | "The backlog is approximately 2 hours.", |
598 | 205 | self.view.describeBacklog(backlog).strip()) | 205 | self.view.describeBacklog(backlog).strip()) |
599 | 206 | 206 | ||
600 | 207 | def test_export_queue_status(self): | 207 | def test_export_queue_status(self): |
601 | 208 | 208 | ||
602 | === modified file 'lib/lp/translations/stories/buildfarm/xx-build-summary.txt' | |||
603 | --- lib/lp/translations/stories/buildfarm/xx-build-summary.txt 2011-05-27 19:53:20 +0000 | |||
604 | +++ lib/lp/translations/stories/buildfarm/xx-build-summary.txt 2011-07-01 19:18:42 +0000 | |||
605 | @@ -158,4 +158,4 @@ | |||
606 | 158 | 1 ... 1 of 1 result | 158 | 1 ... 1 of 1 result |
607 | 159 | ... | 159 | ... |
608 | 160 | Translation template build | 160 | Translation template build |
610 | 161 | Build started ... and finished ... taking five minutes | 161 | Build started ... and finished ... taking 5 minutes |