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): | ||||
|     import pungi.phases | ||||
|     import pungi.metadata | ||||
|     import pungi.util | ||||
| 
 | ||||
|     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("Command line: %s" % " ".join([pipes.quote(arg) for arg in sys.argv])) | ||||
|     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" | ||||
|                      % time.altzone if is_dst else time.timezone) | ||||
|     compose.log_info("Current timezone offset: %s" % pungi.util.get_tz_offset()) | ||||
|     compose.read_variants() | ||||
| 
 | ||||
|     # dump the config file | ||||
|  | ||||
| @ -802,3 +802,12 @@ def retry(timeout=120, interval=30, wait_on=Exception): | ||||
| @retry(wait_on=RuntimeError) | ||||
| def 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) | ||||
| 
 | ||||
| 
 | ||||
| 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__": | ||||
|     unittest.main() | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user