From: Jochen Sprickerhof <github@jochen.sprickerhof.de>
Date: Tue, 24 Oct 2023 19:11:51 +0200
Subject: gh-109017: Use non alternate name for Kyiv (GH-109251)

tzdata provides Kiev as an alternative to Kyiv:
https://sources.debian.org/src/tzdata/2023c-10/backward/?hl=314#L314

But Debian moved it to the tzdata-legacy package breaking the test:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050530

This patch switches to the name provided by tzdata.

Also check that the new name is actually available.

Origin: cPython, https://github.com/python/cpython/pull/109251
Bug-cPython: https://github.com/python/cpython/issues/109017
---
 lib-python/3/test/test_email/test_utils.py | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/lib-python/3/test/test_email/test_utils.py b/lib-python/3/test/test_email/test_utils.py
index 78afb35..81109a7 100644
--- a/lib-python/3/test/test_email/test_utils.py
+++ b/lib-python/3/test/test_email/test_utils.py
@@ -5,6 +5,7 @@ import time
 import unittest
 import sys
 import os.path
+import zoneinfo
 
 class DateTimeTests(unittest.TestCase):
 
@@ -142,13 +143,9 @@ class LocaltimeTests(unittest.TestCase):
         t2 = utils.localtime(t0.replace(tzinfo=None))
         self.assertEqual(t1, t2)
 
-    # XXX: Need a more robust test for Olson's tzdata
-    @unittest.skipIf(sys.platform.startswith('win'),
-                     "Windows does not use Olson's TZ database")
-    @unittest.skipUnless(os.path.exists('/usr/share/zoneinfo') or
-                         os.path.exists('/usr/lib/zoneinfo'),
-                         "Can't find the Olson's TZ database")
-    @test.support.run_with_tz('Europe/Kiev')
+    @unittest.skipUnless("Europe/Kyiv" in zoneinfo.available_timezones(),
+                         "Can't find a Kyiv timezone database")
+    @test.support.run_with_tz('Europe/Kyiv')
     def test_variable_tzname(self):
         t0 = datetime.datetime(1984, 1, 1, tzinfo=datetime.timezone.utc)
         t1 = utils.localtime(t0)
