bpo-42251: Add gettrace and getprofile to threading (GH-23125)
This allows to retrieve the functions that were set in these two, which might differ from sys.gettrace and sys.getprofile within a thread.
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index 2f0f3ae..e0e5406 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -765,6 +765,27 @@ def callback():
finally:
sys.settrace(old_trace)
+ def test_gettrace(self):
+ def noop_trace(frame, event, arg):
+ # no operation
+ return noop_trace
+ old_trace = threading.gettrace()
+ try:
+ threading.settrace(noop_trace)
+ trace_func = threading.gettrace()
+ self.assertEqual(noop_trace,trace_func)
+ finally:
+ threading.settrace(old_trace)
+
+ def test_getprofile(self):
+ def fn(*args): pass
+ old_profile = threading.getprofile()
+ try:
+ threading.setprofile(fn)
+ self.assertEqual(fn, threading.getprofile())
+ finally:
+ threading.setprofile(old_profile)
+
@cpython_only
def test_shutdown_locks(self):
for daemon in (False, True):