Skip to content

Commit bee9e30

Browse files
committed
fix: in windows ci skip test test_weak_cache_descriptor_use_after_free
1 parent 088d555 commit bee9e30

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

Lib/test/test_zoneinfo/test_zoneinfo.py

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@
1414
import struct
1515
import tempfile
1616
import unittest
17+
import zoneinfo
1718
from datetime import date, datetime, time, timedelta, timezone
1819
from functools import cached_property
1920

2021
from test.support import MISSING_C_DOCSTRINGS
2122
from test.support.os_helper import EnvironmentVarGuard, FakePath
2223
from test.test_zoneinfo import _support as test_support
2324
from test.test_zoneinfo._support import TZPATH_TEST_LOCK, ZoneInfoTestBase
25+
from test.support.hypothesis_helper import hypothesis
2426
from test.support.import_helper import import_module, CleanImport
2527
from test.support.script_helper import assert_python_ok
2628

@@ -1551,13 +1553,13 @@ def __eq__(self, other):
15511553
except CustomError:
15521554
pass
15531555

1554-
@unittest.skipUnless(
1555-
lambda: any(os.path.exists(os.path.join(p, 'UTC')) for p in ZoneInfo.tzpath),
1556-
"timezone data not available"
1557-
)
15581556
def test_weak_cache_descriptor_use_after_free(self):
15591557
from zoneinfo import ZoneInfo
15601558

1559+
available_zones = sorted(zoneinfo.available_timezones())
1560+
if "UTC" not in available_zones:
1561+
raise unittest.SkipTest("No time zone data available")
1562+
15611563
class Cache:
15621564
def __init__(self):
15631565
self.data = {}
@@ -1580,22 +1582,16 @@ class EvilZoneInfo(ZoneInfo):
15801582

15811583
EvilZoneInfo._weak_cache = BombDescriptor()
15821584

1583-
try:
1584-
zone1 = EvilZoneInfo("UTC")
1585+
zone1 = EvilZoneInfo("UTC")
15851586

1586-
self.assertIsNotNone(zone1)
1587-
self.assertEqual(str(zone1), "UTC")
1588-
except self.module.ZoneInfoNotFoundError:
1589-
pass
1587+
self.assertIsNotNone(zone1)
1588+
self.assertEqual(str(zone1), "UTC")
15901589

15911590
EvilZoneInfo.clear_cache()
15921591

1593-
try:
1594-
zone2 = EvilZoneInfo("UTC")
1595-
self.assertIsNotNone(zone2)
1596-
self.assertEqual(str(zone2), "UTC")
1597-
except self.module.ZoneInfoNotFoundError:
1598-
pass
1592+
zone2 = EvilZoneInfo("UTC")
1593+
self.assertIsNotNone(zone2)
1594+
self.assertEqual(str(zone2), "UTC")
15991595

16001596

16011597
class CZoneInfoCacheTest(ZoneInfoCacheTest):

0 commit comments

Comments
 (0)