summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2022-03-15 20:55:35 (GMT)
committerGitHub <noreply@github.com>2022-03-15 20:55:35 (GMT)
commita4674f0194067a801f6c6bdb4fc6448e3a40e069 (patch)
treefbcfcdd74d26d7d8e83cfe2feffe4a7e01b310d7
parentaf0a50de4b77dc774fcfdf5468ec320b08bfb53b (diff)
downloadcpython-a4674f0194067a801f6c6bdb4fc6448e3a40e069.zip
cpython-a4674f0194067a801f6c6bdb4fc6448e3a40e069.tar.gz
cpython-a4674f0194067a801f6c6bdb4fc6448e3a40e069.tar.bz2
bpo-40280: Detect presence of time.tzset and thread_time clock (GH-31898)
-rw-r--r--Lib/test/datetimetester.py3
-rw-r--r--Lib/test/test_strptime.py3
-rw-r--r--Lib/test/test_time.py3
-rw-r--r--Modules/timemodule.c4
4 files changed, 11 insertions, 2 deletions
diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py
index e208a29..efea40d 100644
--- a/Lib/test/datetimetester.py
+++ b/Lib/test/datetimetester.py
@@ -5856,6 +5856,9 @@ class ZoneInfoTest(unittest.TestCase):
ldt = tz.fromutc(udt.replace(tzinfo=tz))
self.assertEqual(ldt.fold, 0)
+ @unittest.skipUnless(
+ hasattr(time, "tzset"), "time module has no attribute tzset"
+ )
def test_system_transitions(self):
if ('Riyadh8' in self.zonename or
# From tzdata NEWS file:
diff --git a/Lib/test/test_strptime.py b/Lib/test/test_strptime.py
index 55a0f42..e5f75b7 100644
--- a/Lib/test/test_strptime.py
+++ b/Lib/test/test_strptime.py
@@ -390,6 +390,9 @@ class StrptimeTests(unittest.TestCase):
"LocaleTime().timezone has duplicate values and "
"time.daylight but timezone value not set to -1")
+ @unittest.skipUnless(
+ hasattr(time, "tzset"), "time module has no attribute tzset"
+ )
def test_bad_timezone(self):
# Explicitly test possibility of bad timezone;
# when time.tzname[0] == time.tzname[1] and time.daylight
diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py
index 57011d1..faac639 100644
--- a/Lib/test/test_time.py
+++ b/Lib/test/test_time.py
@@ -561,8 +561,9 @@ class TimeTestCase(unittest.TestCase):
'perf_counter',
'process_time',
'time',
- 'thread_time',
]
+ if hasattr(time, 'thread_time'):
+ clocks.append('thread_time')
for name in clocks:
with self.subTest(name=name):
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index 5b2d9b7..7475ef3 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -1479,7 +1479,9 @@ _PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
return 0;
}
-#elif defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_PROCESS_CPUTIME_ID)
+#elif defined(HAVE_CLOCK_GETTIME) && \
+ defined(CLOCK_PROCESS_CPUTIME_ID) && \
+ !defined(__EMSCRIPTEN__)
#define HAVE_THREAD_TIME
#if defined(__APPLE__) && defined(__has_attribute) && __has_attribute(availability)