diff --git a/src/pendulum/tz/data/windows.py b/src/pendulum/tz/data/windows.py index 7216a4e77..15ef99096 100644 --- a/src/pendulum/tz/data/windows.py +++ b/src/pendulum/tz/data/windows.py @@ -6,6 +6,7 @@ "AUS Eastern Standard Time": "Australia/Sydney", "Afghanistan Standard Time": "Asia/Kabul", "Alaskan Standard Time": "America/Anchorage", + "Alberta Standard Time": "America/Edmonton", "Aleutian Standard Time": "America/Adak", "Altai Standard Time": "Asia/Barnaul", "Arab Standard Time": "Asia/Riyadh", @@ -21,12 +22,13 @@ "Bangladesh Standard Time": "Asia/Dhaka", "Belarus Standard Time": "Europe/Minsk", "Bougainville Standard Time": "Pacific/Bougainville", + "British Columbia Standard Time": "America/Vancouver", "Canada Central Standard Time": "America/Regina", "Cape Verde Standard Time": "Atlantic/Cape_Verde", "Caucasus Standard Time": "Asia/Yerevan", "Cen. Australia Standard Time": "Australia/Adelaide", "Central America Standard Time": "America/Guatemala", - "Central Asia Standard Time": "Asia/Almaty", + "Central Asia Standard Time": "Asia/Bishkek", "Central Brazilian Standard Time": "America/Cuiaba", "Central Europe Standard Time": "Europe/Budapest", "Central European Standard Time": "Europe/Warsaw", @@ -66,13 +68,14 @@ "Lord Howe Standard Time": "Australia/Lord_Howe", "Magadan Standard Time": "Asia/Magadan", "Magallanes Standard Time": "America/Punta_Arenas", + "Manitoba Standard Time": "America/Winnipeg", "Marquesas Standard Time": "Pacific/Marquesas", "Mauritius Standard Time": "Indian/Mauritius", "Middle East Standard Time": "Asia/Beirut", "Montevideo Standard Time": "America/Montevideo", "Morocco Standard Time": "Africa/Casablanca", "Mountain Standard Time": "America/Denver", - "Mountain Standard Time (Mexico)": "America/Chihuahua", + "Mountain Standard Time (Mexico)": "America/Mazatlan", "Myanmar Standard Time": "Asia/Rangoon", "N. Central Asia Standard Time": "Asia/Novosibirsk", "Namibia Standard Time": "Africa/Windhoek", @@ -89,6 +92,7 @@ "Pacific Standard Time (Mexico)": "America/Tijuana", "Pakistan Standard Time": "Asia/Karachi", "Paraguay Standard Time": "America/Asuncion", + "Qyzylorda Standard Time": "Asia/Qyzylorda", "Romance Standard Time": "Europe/Paris", "Russia Time Zone 10": "Asia/Srednekolymsk", "Russia Time Zone 11": "Asia/Kamchatka", @@ -105,6 +109,7 @@ "Saratov Standard Time": "Europe/Saratov", "Singapore Standard Time": "Asia/Singapore", "South Africa Standard Time": "Africa/Johannesburg", + "South Sudan Standard Time": "Africa/Juba", "Sri Lanka Standard Time": "Asia/Colombo", "Sudan Standard Time": "Africa/Khartoum", "Syria Standard Time": "Asia/Damascus", @@ -129,6 +134,7 @@ "Ulaanbaatar Standard Time": "Asia/Ulaanbaatar", "Venezuela Standard Time": "America/Caracas", "Vladivostok Standard Time": "Asia/Vladivostok", + "Volgograd Standard Time": "Europe/Volgograd", "W. Australia Standard Time": "Australia/Perth", "W. Central Africa Standard Time": "Africa/Lagos", "W. Europe Standard Time": "Europe/Berlin", @@ -137,4 +143,5 @@ "West Bank Standard Time": "Asia/Hebron", "West Pacific Standard Time": "Pacific/Port_Moresby", "Yakutsk Standard Time": "Asia/Yakutsk", + "Yukon Standard Time": "America/Whitehorse", } diff --git a/tests/tz/test_local_timezone.py b/tests/tz/test_local_timezone.py index b8eff6de6..b560da9bb 100644 --- a/tests/tz/test_local_timezone.py +++ b/tests/tz/test_local_timezone.py @@ -5,8 +5,10 @@ import pytest +from pendulum.tz.data.windows import windows_timezones from pendulum.tz.local_timezone import _get_unix_timezone from pendulum.tz.local_timezone import _get_windows_timezone +from pendulum.tz.timezone import Timezone @pytest.mark.skipif( @@ -50,3 +52,26 @@ def test_unix_etc_timezone_dir(): tz = _get_unix_timezone(_root=root_path) assert tz.name == "Europe/Paris" + + +@pytest.mark.parametrize( + ("windows_name", "expected"), + [ + ("British Columbia Standard Time", "America/Vancouver"), + ("Alberta Standard Time", "America/Edmonton"), + ("Manitoba Standard Time", "America/Winnipeg"), + ("Yukon Standard Time", "America/Whitehorse"), + ("Qyzylorda Standard Time", "Asia/Qyzylorda"), + ("South Sudan Standard Time", "Africa/Juba"), + ("Volgograd Standard Time", "Europe/Volgograd"), + ("Central Asia Standard Time", "Asia/Bishkek"), + ("Mountain Standard Time (Mexico)", "America/Mazatlan"), + ], +) +def test_windows_timezone_names_match_cldr(windows_name, expected): + assert windows_timezones[windows_name] == expected + + +def test_windows_timezone_names_load(): + for name in windows_timezones.values(): + assert Timezone(name).name == name