diff --git a/Lib/test/test_wmi.py b/Lib/test/test_wmi.py index f667926d1f8ddf..111f990656ced5 100644 --- a/Lib/test/test_wmi.py +++ b/Lib/test/test_wmi.py @@ -3,7 +3,8 @@ import time import unittest -from test.support import import_helper, requires_resource, LOOPBACK_TIMEOUT +from test import support +from test.support import import_helper # Do this first so test will be skipped if module doesn't exist @@ -12,15 +13,16 @@ def wmi_exec_query(query): # gh-112278: WMI maybe slow response when first call. - try: - return _wmi.exec_query(query) - except BrokenPipeError: - pass - except WindowsError as e: - if e.winerror != 258: - raise - time.sleep(LOOPBACK_TIMEOUT) - return _wmi.exec_query(query) + for _ in support.sleeping_retry(support.LONG_TIMEOUT): + try: + return _wmi.exec_query(query) + except BrokenPipeError: + pass + # retry on pipe error + except WindowsError as exc: + if exc.winerror != 258: + raise + # retry on timeout class WmiTests(unittest.TestCase): @@ -58,7 +60,7 @@ def test_wmi_query_not_select(self): with self.assertRaises(ValueError): wmi_exec_query("not select, just in case someone tries something") - @requires_resource('cpu') + @support.requires_resource('cpu') def test_wmi_query_overflow(self): # Ensure very big queries fail # Test multiple times to ensure consistency
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: