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
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):
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