assert hook not in o
+def test_sys_monitoring_register_callback():
+ import sys
+
+ def hook(event, args):
+ if event.startswith("sys.monitoring"):
+ print(event, args)
+
+ sys.addaudithook(hook)
+ sys.monitoring.register_callback(1, 1, None)
+
+
if __name__ == "__main__":
from test.support import suppress_msvcrt_asserts
self.fail(stderr)
+ def test_sys_monitoring_register_callback(self):
+ returncode, events, stderr = self.run_python("test_sys_monitoring_register_callback")
+ if returncode:
+ self.fail(stderr)
+
+ if support.verbose:
+ print(*events, sep='\n')
+ actual = [(ev[0], ev[2]) for ev in events]
+ expected = [("sys.monitoring.register_callback", "(None,)")]
+
+ self.assertEqual(actual, expected)
+
+
if __name__ == "__main__":
unittest.main()
--- /dev/null
+PEP 669 specifies that ``sys.monitoring.register_callback`` will generate an
+audit event. Pre-releases of Python 3.12 did not generate the audit event.
+This is now fixed.
PyErr_Format(PyExc_ValueError, "invalid event %d", event);
return NULL;
}
+ if (PySys_Audit("sys.monitoring.register_callback", "O", func) < 0) {
+ return NULL;
+ }
if (func == Py_None) {
func = NULL;
}