https://github.com/python/cpython/commit/f67ff9e82071b21c1960401aed4844b00b5bfb53
commit: f67ff9e82071b21c1960401aed4844b00b5bfb53
branch: main
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2025-03-04T16:07:01+01:00
summary:
gh-130727: Retry test_wmi on TimeoutError (#130832)
Use sleeping_retry() in test_wmi to retry multiple times on
TimeoutError. Wait up to LONG_TIMEOUT seconds (5 minutes by default).
files:
M Lib/test/test_wmi.py
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
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]