def get_uptime_desc(self):
"""Returns the uptime in human readable form.
- Specifically, the format is '[DD day[s], ]hh:mm'.
- It returns None if _uptime is None.
+ The format is the result of str() method of the standard library
+ datetime.timedelta class. It returns None if _uptime is None.
"""
if self._uptime is None:
return None
- uptime_desc = ''
- time_delta = timedelta(seconds=self._uptime)
- days = time_delta.days
- if days > 0:
- uptime_desc += ('%d day%s, ' % (days, 's' if days > 1 else ''))
- hours = int(time_delta.seconds / 3600)
- minutes = int((time_delta.seconds - hours * 3600) / 60)
- uptime_desc += ('%d:%02d' % (hours, minutes))
- return uptime_desc
+ return str(timedelta(seconds=self._uptime))
def get_loadavg(self):
"""Returns the load average as 3 floating point values in an array."""
self.assertFalse(s.get_platform_is_smp())
self.assertEqual(131072, s.get_uptime())
# We check that we do NOT add 's' to 'day' (because it's singular):
- self.assertEqual('1 day, 12:24', s.get_uptime_desc())
+ self.assertEqual('1 day, 12:24:32', s.get_uptime_desc())
self.assertEqual(None, s.get_loadavg())
self.assertEqual(None, s.get_mem_total())
self.assertEqual(None, s.get_mem_free())
self.assertEqual(172801, s.get_uptime())
# We check that we add 's' to 'day', and that the mm part has an
# additional 0, i.e., not '0:0' but '0:00':
- self.assertEqual('2 days, 0:00', s.get_uptime_desc())
+ self.assertEqual('2 days, 0:00:01', s.get_uptime_desc())
self.assertEqual((0.1, 0.2, 0.3), s.get_loadavg())
self.assertEqual(3157884928, s.get_mem_total())
self.assertEqual(891383808, s.get_mem_free())
self.assertEqual(1037533184, s.get_mem_swap_total())
self.assertEqual(1037533184, s.get_mem_swap_free())
- # One more untested case so far: get_uptime_desc() should omit the
- # "days" field.
- faked_process_output['boottime-sysctl'] = bytes(
- '{ sec = ' + str(int(time.time() - 4200)) +
- ', usec = 0 }\n', 'utf-8')
- s = SysInfoFromFactory()
- self.assertEqual('1:10', s.get_uptime_desc())
-
def test_sysinfo_osx(self):
"""Tests the OS X implementation of SysInfo. Note that this
tests deep into the implementation, and not just the