Skip to content

Commit 20cbc0c

Browse files
committed
Use correct singluar/plural forms in time2str
1 parent e0eed8c commit 20cbc0c

File tree

2 files changed

+31
-30
lines changed

2 files changed

+31
-30
lines changed

easybuild/tools/utilities.py

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -300,22 +300,21 @@ def time2str(delta):
300300
if not isinstance(delta, datetime.timedelta):
301301
raise EasyBuildError("Incorrect value type provided to time2str, should be datetime.timedelta: %s", type(delta))
302302

303-
delta_secs = delta.days * 3600 * 24 + delta.seconds + delta.microseconds / 10**6
304-
305-
if delta_secs < 60:
306-
res = '%d sec' % int(delta_secs)
307-
elif delta_secs < 3600:
308-
mins = int(delta_secs / 60)
309-
secs = int(delta_secs - (mins * 60))
310-
res = '%d min %d sec' % (mins, secs)
311-
else:
312-
hours = int(delta_secs / 3600)
313-
mins = int((delta_secs - hours * 3600) / 60)
314-
secs = int(delta_secs - (hours * 3600) - (mins * 60))
315-
hours_str = 'hours' if hours > 1 else 'hour'
316-
res = '%d %s %d min %d sec' % (hours, hours_str, mins, secs)
303+
delta_secs = delta.total_seconds()
317304

318-
return res
305+
hours = int(delta_secs / 3600)
306+
delta_secs -= hours * 3600
307+
mins = int(delta_secs / 60)
308+
secs = int(delta_secs - mins * 60)
309+
310+
res = []
311+
if hours:
312+
res.append('%d %s' % (hours, 'hour' if hours == 1 else 'hours'))
313+
if mins or hours:
314+
res.append('%d %s' % (mins, 'min' if mins == 1 else 'mins'))
315+
res.append('%d %s' % (secs, 'sec' if secs == 1 else 'secs'))
316+
317+
return ' '.join(res)
319318

320319

321320
def natural_keys(key):

test/framework/utilities_test.py

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,21 +57,23 @@ def test_time2str(self):
5757
start = datetime(2019, 7, 30, 5, 14, 23)
5858

5959
test_cases = [
60-
(start, "0 sec"),
61-
(datetime(2019, 7, 30, 5, 14, 37), "14 sec"),
62-
(datetime(2019, 7, 30, 5, 15, 22), "59 sec"),
63-
(datetime(2019, 7, 30, 5, 15, 23), "1 min 0 sec"),
64-
(datetime(2019, 7, 30, 5, 16, 22), "1 min 59 sec"),
65-
(datetime(2019, 7, 30, 5, 37, 26), "23 min 3 sec"),
66-
(datetime(2019, 7, 30, 6, 14, 22), "59 min 59 sec"),
67-
(datetime(2019, 7, 30, 6, 14, 23), "1 hour 0 min 0 sec"),
68-
(datetime(2019, 7, 30, 6, 49, 14), "1 hour 34 min 51 sec"),
69-
(datetime(2019, 7, 30, 7, 14, 23), "2 hours 0 min 0 sec"),
70-
(datetime(2019, 7, 30, 8, 35, 59), "3 hours 21 min 36 sec"),
71-
(datetime(2019, 7, 30, 16, 29, 24), "11 hours 15 min 1 sec"),
72-
(datetime(2019, 7, 31, 5, 14, 22), "23 hours 59 min 59 sec"),
73-
(datetime(2019, 7, 31, 5, 14, 23), "24 hours 0 min 0 sec"),
74-
(datetime(2019, 8, 5, 20, 39, 44), "159 hours 25 min 21 sec"),
60+
(start, "0 secs"),
61+
(datetime(2019, 7, 30, 5, 14, 37), "14 secs"),
62+
(datetime(2019, 7, 30, 5, 15, 22), "59 secs"),
63+
(datetime(2019, 7, 30, 5, 15, 23), "1 min 0 secs"),
64+
(datetime(2019, 7, 30, 5, 16, 22), "1 min 59 secs"),
65+
(datetime(2019, 7, 30, 5, 16, 24), "2 mins 1 sec"),
66+
(datetime(2019, 7, 30, 5, 37, 26), "23 mins 3 secs"),
67+
(datetime(2019, 7, 30, 6, 14, 22), "59 mins 59 secs"),
68+
(datetime(2019, 7, 30, 6, 14, 23), "1 hour 0 mins 0 secs"),
69+
(datetime(2019, 7, 30, 6, 49, 14), "1 hour 34 mins 51 secs"),
70+
(datetime(2019, 7, 30, 7, 14, 23), "2 hours 0 mins 0 secs"),
71+
(datetime(2019, 7, 30, 8, 35, 59), "3 hours 21 mins 36 secs"),
72+
(datetime(2019, 7, 30, 16, 29, 24), "11 hours 15 mins 1 sec"),
73+
(datetime(2019, 7, 31, 5, 14, 22), "23 hours 59 mins 59 secs"),
74+
(datetime(2019, 7, 31, 5, 14, 23), "24 hours 0 mins 0 secs"),
75+
(datetime(2019, 7, 31, 5, 15, 24), "24 hours 1 min 1 sec"),
76+
(datetime(2019, 8, 5, 20, 39, 44), "159 hours 25 mins 21 secs"),
7577
]
7678
for end, expected in test_cases:
7779
self.assertEqual(time2str(end - start), expected)

0 commit comments

Comments
 (0)