diff options
author | James Cowgill <jcowgill@jcowgill.uk> | 2023-01-24 12:40:29 +0000 |
---|---|---|
committer | James Cowgill <jcowgill@jcowgill.uk> | 2023-01-24 12:41:24 +0000 |
commit | 854a2d1f7fde596babe85ba9f76f282e9d53086d (patch) | |
tree | 05aaf9032c8be41b5b7f7885819ed8078e0064a4 /test/test_util.py | |
parent | cc92d5126b2fc80f7cc6866fc8f99b3ffb0189ae (diff) | |
download | gitpython-854a2d1f7fde596babe85ba9f76f282e9d53086d.tar.gz |
Fix timezone parsing functions for non-hour timezones
The `utctz_to_altz` and `altz_to_utctz_str` functions fail to handle
timezones with UTC offsets that are not a multiple of one
hour. Rewrite them and add some unit tests.
Fixes #630
Diffstat (limited to 'test/test_util.py')
-rw-r--r-- | test/test_util.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/test_util.py b/test/test_util.py index 90dd89a9..c17efce3 100644 --- a/test/test_util.py +++ b/test/test_util.py @@ -333,6 +333,27 @@ class TestUtils(TestBase): self.assertRaises(IndexError, ilist.__delitem__, 0) self.assertRaises(IndexError, ilist.__delitem__, "something") + def test_utctz_to_altz(self): + self.assertEqual(utctz_to_altz("+0000"), 0) + self.assertEqual(utctz_to_altz("+1400"), -(14 * 3600)) + self.assertEqual(utctz_to_altz("-1200"), 12 * 3600) + self.assertEqual(utctz_to_altz("+0001"), -60) + self.assertEqual(utctz_to_altz("+0530"), -(5 * 3600 + 1800)) + self.assertEqual(utctz_to_altz("-0930"), 9 * 3600 + 1800) + + def test_altz_to_utctz_str(self): + self.assertEqual(altz_to_utctz_str(0), "+0000") + self.assertEqual(altz_to_utctz_str(-(14 * 3600)), "+1400") + self.assertEqual(altz_to_utctz_str(12 * 3600), "-1200") + self.assertEqual(altz_to_utctz_str(-60), "+0001") + self.assertEqual(altz_to_utctz_str(-(5 * 3600 + 1800)), "+0530") + self.assertEqual(altz_to_utctz_str(9 * 3600 + 1800), "-0930") + + self.assertEqual(altz_to_utctz_str(1), "+0000") + self.assertEqual(altz_to_utctz_str(59), "+0000") + self.assertEqual(altz_to_utctz_str(-1), "+0000") + self.assertEqual(altz_to_utctz_str(-59), "+0000") + def test_from_timestamp(self): # Correct offset: UTC+2, should return datetime + tzoffset(+2) altz = utctz_to_altz("+0200") |