gh-108294: Add error handling for time.sleep audit event (GH-108363)

I've also cleaned the tests up a bit to make this easier to test.
This commit is contained in:
Petr Viktorin 2023-09-05 10:25:08 +02:00 committed by GitHub
parent 24e989211a
commit 230649f538
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 32 deletions

View file

@ -186,7 +186,7 @@ def test_monkeypatch():
)
def test_open():
def test_open(testfn):
# SSLContext.load_dh_params uses _Py_fopen_obj rather than normal open()
try:
import ssl
@ -199,11 +199,11 @@ def test_open():
# All of them should fail
with TestHook(raise_on_events={"open"}) as hook:
for fn, *args in [
(open, sys.argv[2], "r"),
(open, testfn, "r"),
(open, sys.executable, "rb"),
(open, 3, "wb"),
(open, sys.argv[2], "w", -1, None, None, None, False, lambda *a: 1),
(load_dh_params, sys.argv[2]),
(open, testfn, "w", -1, None, None, None, False, lambda *a: 1),
(load_dh_params, testfn),
]:
if not fn:
continue
@ -216,11 +216,11 @@ def test_open():
[
i
for i in [
(sys.argv[2], "r"),
(testfn, "r"),
(sys.executable, "r"),
(3, "w"),
(sys.argv[2], "w"),
(sys.argv[2], "rb") if load_dh_params else None,
(testfn, "w"),
(testfn, "rb") if load_dh_params else None,
]
if i is not None
],
@ -517,12 +517,15 @@ def test_not_in_gc():
assert hook not in o
def test_time():
def test_time(mode):
import time
def hook(event, args):
if event.startswith("time."):
print(event, *args)
if mode == 'print':
print(event, *args)
elif mode == 'fail':
raise AssertionError('hook failed')
sys.addaudithook(hook)
time.sleep(0)
@ -549,4 +552,4 @@ if __name__ == "__main__":
suppress_msvcrt_asserts()
test = sys.argv[1]
globals()[test]()
globals()[test](*sys.argv[2:])