mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-23 07:33:27 -06:00
ipaserver.install.service: Fix estimated time display
Use basic math rather than timezone conversion to get minutes and seconds. Break out the message generation into a small tested function. https://fedorahosted.org/freeipa/ticket/4242 Reviewed-By: Rob Crittenden <rcritten@redhat.com>
This commit is contained in:
parent
62426970b7
commit
7c9fa8fad9
@ -58,6 +58,21 @@ def print_msg(message, output_fd=sys.stdout):
|
||||
output_fd.flush()
|
||||
|
||||
|
||||
def format_seconds(seconds):
|
||||
"""Format a number of seconds as an English minutes+seconds message"""
|
||||
parts = []
|
||||
minutes, seconds = divmod(seconds, 60)
|
||||
if minutes:
|
||||
parts.append('%d minute' % minutes)
|
||||
if minutes != 1:
|
||||
parts[-1] += 's'
|
||||
if seconds or not minutes:
|
||||
parts.append('%d second' % seconds)
|
||||
if seconds != 1:
|
||||
parts[-1] += 's'
|
||||
return ' '.join(parts)
|
||||
|
||||
|
||||
class Service(object):
|
||||
def __init__(self, service_name, service_desc=None, sstore=None, dm_password=None, ldapi=True, autobind=AUTO):
|
||||
self.service_name = service_name
|
||||
@ -341,19 +356,8 @@ class Service(object):
|
||||
end_message = "Done configuring %s." % self.service_desc
|
||||
|
||||
if runtime > 0:
|
||||
plural=''
|
||||
est = time.localtime(runtime)
|
||||
if est.tm_min > 0:
|
||||
if est.tm_min > 1:
|
||||
plural = 's'
|
||||
if est.tm_sec > 0:
|
||||
self.print_msg('%s: Estimated time %d minute%s %d seconds' % (start_message, est.tm_min, plural, est.tm_sec))
|
||||
else:
|
||||
self.print_msg('%s: Estimated time %d minute%s' % (start_message, est.tm_min, plural))
|
||||
else:
|
||||
if est.tm_sec > 1:
|
||||
plural = 's'
|
||||
self.print_msg('%s: Estimated time %d second%s' % (start_message, est.tm_sec, plural))
|
||||
self.print_msg('%s: Estimated time %s' % (start_message,
|
||||
format_seconds(runtime)))
|
||||
else:
|
||||
self.print_msg(start_message)
|
||||
|
||||
|
36
ipatests/test_ipaserver/test_install/test_service.py
Normal file
36
ipatests/test_ipaserver/test_install/test_service.py
Normal file
@ -0,0 +1,36 @@
|
||||
# Authors:
|
||||
# Petr Viktorin <pviktori@redhat.com>
|
||||
#
|
||||
# Copyright (C) 2014 Red Hat
|
||||
# see file 'COPYING' for use and warranty information
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
"""
|
||||
Tests for the `ipaserver.service` module.
|
||||
"""
|
||||
|
||||
from ipaserver.install import service
|
||||
|
||||
|
||||
def test_format_seconds():
|
||||
assert service.format_seconds(0) == '0 seconds'
|
||||
assert service.format_seconds(1) == '1 second'
|
||||
assert service.format_seconds(2) == '2 seconds'
|
||||
assert service.format_seconds(11) == '11 seconds'
|
||||
assert service.format_seconds(60) == '1 minute'
|
||||
assert service.format_seconds(61) == '1 minute 1 second'
|
||||
assert service.format_seconds(62) == '1 minute 2 seconds'
|
||||
assert service.format_seconds(120) == '2 minutes'
|
||||
assert service.format_seconds(125) == '2 minutes 5 seconds'
|
Loading…
Reference in New Issue
Block a user