diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py index e208a29813eed3..efea40d3f4ff1f 100644 --- a/Lib/test/datetimetester.py +++ b/Lib/test/datetimetester.py @@ -5856,6 +5856,9 @@ def test_gaps(self): 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 55a0f426731a5d..e5f75b7aab9aa5 100644 --- a/Lib/test/test_strptime.py +++ b/Lib/test/test_strptime.py @@ -390,6 +390,9 @@ def test_timezone(self): "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 57011d158cd037..faac639613a5c2 100644 --- a/Lib/test/test_time.py +++ b/Lib/test/test_time.py @@ -561,8 +561,9 @@ def test_get_clock_info(self): '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 5b2d9b768ddd6f..7475ef344b72b2 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)