def assertParsedTimezoneOffsetDetailsMatch(self, tz_name, expected): env_var = ics.get_tz_posix_env_var(tz_name) details = ics.parse_tz_posix_env_var(env_var) self.assertIsNotNone(details) self.assertEqual(details, expected, msg='offset details differ from what was expected')
def test_posix_tz_var_extraction(self): for path in smoke_zephyr.utilities.FileWalker(ics.zoneinfo_path, absolute_path=True, skip_dirs=True): tz_name = os.path.relpath(path, ics.zoneinfo_path) # blacklist of timezones to ignore if tz_name in ('Factory',): continue with open(path, 'rb') as file_h: # only version 2 TZ files have the variable defined if file_h.read(5) != b'TZif2': continue env_var = ics.get_tz_posix_env_var(tz_name) self.assertIsInstance(env_var, str) if not env_var: continue details = ics.parse_tz_posix_env_var(env_var) self.assertIsInstance(details, ics.TimezoneOffsetDetails, msg="failed to parse environment variable: '{0}' for zone: '{1}'".format(env_var, tz_name))