summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@python.org>2020-03-31 11:38:53 (GMT)
committerGitHub <noreply@github.com>2020-03-31 11:38:53 (GMT)
commit63ba5cccf484b9ec23dfbf4cf7ffdc833eda98c3 (patch)
treea249b3a79cce91fe6a8aa5c3d0e55b1793cdb058 /Lib/test
parentef67512b40240f765026ad41d60b0c9a6dacd2b9 (diff)
downloadcpython-63ba5cccf484b9ec23dfbf4cf7ffdc833eda98c3.zip
cpython-63ba5cccf484b9ec23dfbf4cf7ffdc833eda98c3.tar.gz
cpython-63ba5cccf484b9ec23dfbf4cf7ffdc833eda98c3.tar.bz2
bpo-40121: Fixes audit event raised on creating a new socket (GH-19238)
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/audit-tests.py22
-rw-r--r--Lib/test/test_audit.py12
2 files changed, 34 insertions, 0 deletions
diff --git a/Lib/test/audit-tests.py b/Lib/test/audit-tests.py
index 33f3209..dda52a5 100644
--- a/Lib/test/audit-tests.py
+++ b/Lib/test/audit-tests.py
@@ -327,6 +327,28 @@ def test_winreg():
CloseKey(kv)
+def test_socket():
+ import socket
+
+ def hook(event, args):
+ if event.startswith("socket."):
+ print(event, *args)
+
+ sys.addaudithook(hook)
+
+ socket.gethostname()
+
+ # Don't care if this fails, we just want the audit message
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ try:
+ # Don't care if this fails, we just want the audit message
+ sock.bind(('127.0.0.1', 8080))
+ except error:
+ pass
+ finally:
+ sock.close()
+
+
if __name__ == "__main__":
from test.libregrtest.setup import suppress_msvcrt_asserts
diff --git a/Lib/test/test_audit.py b/Lib/test/test_audit.py
index 73dd5c5..f405c69 100644
--- a/Lib/test/test_audit.py
+++ b/Lib/test/test_audit.py
@@ -118,6 +118,18 @@ class AuditTest(unittest.TestCase):
self.assertSequenceEqual(["winreg.EnumKey", " ", f"{expected} 10000"], events[3])
self.assertSequenceEqual(["winreg.PyHKEY.Detach", " ", expected], events[4])
+ def test_socket(self):
+ support.import_module("socket")
+ returncode, events, stderr = self.run_python("test_socket")
+ if returncode:
+ self.fail(stderr)
+
+ if support.verbose:
+ print(*events, sep='\n')
+ self.assertEqual(events[0][0], "socket.gethostname")
+ self.assertEqual(events[1][0], "socket.__new__")
+ self.assertEqual(events[2][0], "socket.bind")
+ self.assertTrue(events[2][2].endswith("('127.0.0.1', 8080)"))
if __name__ == "__main__":
unittest.main()