Fix formatting timezone offset
Displaying the offset in seconds makes very little sense. We should adhere to ISO 8601 format of `+HH:MM` which is much easier to understand. Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
This commit is contained in:
parent
87884b6412
commit
6a425ee891
@ -252,6 +252,7 @@ def main():
|
|||||||
def run_compose(compose, create_latest_link=True, latest_link_status=None):
|
def run_compose(compose, create_latest_link=True, latest_link_status=None):
|
||||||
import pungi.phases
|
import pungi.phases
|
||||||
import pungi.metadata
|
import pungi.metadata
|
||||||
|
import pungi.util
|
||||||
|
|
||||||
errors = []
|
errors = []
|
||||||
|
|
||||||
@ -262,9 +263,7 @@ def run_compose(compose, create_latest_link=True, latest_link_status=None):
|
|||||||
compose.log_info("Working directory: %s" % os.getcwd())
|
compose.log_info("Working directory: %s" % os.getcwd())
|
||||||
compose.log_info("Command line: %s" % " ".join([pipes.quote(arg) for arg in sys.argv]))
|
compose.log_info("Command line: %s" % " ".join([pipes.quote(arg) for arg in sys.argv]))
|
||||||
compose.log_info("Compose top directory: %s" % compose.topdir)
|
compose.log_info("Compose top directory: %s" % compose.topdir)
|
||||||
is_dst = time.daylight and time.localtime().tm_isdst > 0
|
compose.log_info("Current timezone offset: %s" % pungi.util.get_tz_offset())
|
||||||
compose.log_info("Current timezone offset: %s"
|
|
||||||
% time.altzone if is_dst else time.timezone)
|
|
||||||
compose.read_variants()
|
compose.read_variants()
|
||||||
|
|
||||||
# dump the config file
|
# dump the config file
|
||||||
|
@ -802,3 +802,12 @@ def retry(timeout=120, interval=30, wait_on=Exception):
|
|||||||
@retry(wait_on=RuntimeError)
|
@retry(wait_on=RuntimeError)
|
||||||
def git_ls_remote(baseurl, ref):
|
def git_ls_remote(baseurl, ref):
|
||||||
return run(['git', 'ls-remote', baseurl, ref])
|
return run(['git', 'ls-remote', baseurl, ref])
|
||||||
|
|
||||||
|
|
||||||
|
def get_tz_offset():
|
||||||
|
"""Return a string describing current local timezone offset."""
|
||||||
|
is_dst = time.daylight and time.localtime().tm_isdst > 0
|
||||||
|
offset = time.altzone if is_dst else time.timezone
|
||||||
|
hours = offset / 3600
|
||||||
|
minutes = (offset / 60) % 60
|
||||||
|
return "%+03d:%02d" % (hours, minutes)
|
||||||
|
@ -591,5 +591,35 @@ class TestVersionGenerator(unittest.TestCase):
|
|||||||
self.assertEqual(util.version_generator(compose, None), None)
|
self.assertEqual(util.version_generator(compose, None), None)
|
||||||
|
|
||||||
|
|
||||||
|
class TestTZOffset(unittest.TestCase):
|
||||||
|
@mock.patch('time.daylight', new=False)
|
||||||
|
@mock.patch('time.altzone', new=7200)
|
||||||
|
@mock.patch('time.timezone', new=3600)
|
||||||
|
@mock.patch('time.localtime', new=lambda: mock.Mock(tm_isdst=0))
|
||||||
|
def test_zone_without_dst(self):
|
||||||
|
self.assertEqual(util.get_tz_offset(), "+01:00")
|
||||||
|
|
||||||
|
@mock.patch('time.daylight', new=True)
|
||||||
|
@mock.patch('time.altzone', new=7200)
|
||||||
|
@mock.patch('time.timezone', new=3600)
|
||||||
|
@mock.patch('time.localtime', new=lambda: mock.Mock(tm_isdst=0))
|
||||||
|
def test_with_active_dst(self):
|
||||||
|
self.assertEqual(util.get_tz_offset(), "+01:00")
|
||||||
|
|
||||||
|
@mock.patch('time.daylight', new=True)
|
||||||
|
@mock.patch('time.altzone', new=9000)
|
||||||
|
@mock.patch('time.timezone', new=3600)
|
||||||
|
@mock.patch('time.localtime', new=lambda: mock.Mock(tm_isdst=1))
|
||||||
|
def test_with_inactive_dst(self):
|
||||||
|
self.assertEqual(util.get_tz_offset(), "+02:30")
|
||||||
|
|
||||||
|
@mock.patch('time.daylight', new=False)
|
||||||
|
@mock.patch('time.altzone', new=0)
|
||||||
|
@mock.patch('time.timezone', new=0)
|
||||||
|
@mock.patch('time.localtime', new=lambda: mock.Mock(tm_isdst=0))
|
||||||
|
def test_utc(self):
|
||||||
|
self.assertEqual(util.get_tz_offset(), "+00:00")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
Loading…
Reference in New Issue
Block a user