Make GetPortFromPortServer() a public API.
It was formerly internal only.
Normal users should just use PickUnusedPort() but there are rare times
when a test framework _only_ wants a port if it came from a specific server.
diff --git a/src/portpicker.py b/src/portpicker.py
index 751174d..5ea9f0c 100755
--- a/src/portpicker.py
+++ b/src/portpicker.py
@@ -97,7 +97,7 @@
port = None
# Provide access to the portserver on an opt-in basis.
if 'PORTSERVER_ADDRESS' in os.environ:
- port = _GetPortFromPortServer(os.environ['PORTSERVER_ADDRESS'], pid=pid)
+ port = GetPortFromPortServer(os.environ['PORTSERVER_ADDRESS'], pid=pid)
if not port:
return _PickUnusedPortWithoutServer()
return port
@@ -132,7 +132,7 @@
return port
-def _GetPortFromPortServer(portserver_address, pid=None):
+def GetPortFromPortServer(portserver_address, pid=None):
"""Request a free a port from a system-wide portserver.
This follows a very simple portserver protocol:
@@ -140,7 +140,7 @@
The response is a port number and a newline, 0 on failure.
This function is an implementation detail of PickUnusedPort(), and
- should not be called by code outside of this module.
+ should not normally be called by code outside of this module.
Args:
portserver_address: The address (path) of a unix domain socket
diff --git a/src/tests/portpicker_test.py b/src/tests/portpicker_test.py
index d711329..bf800cd 100755
--- a/src/tests/portpicker_test.py
+++ b/src/tests/portpicker_test.py
@@ -65,9 +65,9 @@
@unittest.skipIf('PORTSERVER_ADDRESS' not in os.environ,
'no port server to test against')
def testGetPortFromPortServer(self):
- """Exercise the _GetPortFromPortServer() helper function."""
+ """Exercise the GetPortFromPortServer() helper function."""
for _ in range(10):
- port = portpicker._GetPortFromPortServer(os.environ['PORTSERVER_ADDRESS'])
+ port = portpicker.GetPortFromPortServer(os.environ['PORTSERVER_ADDRESS'])
self.assertTrue(self.IsUnusedTCPPort(port))
self.assertTrue(self.IsUnusedUDPPort(port))
@@ -75,7 +75,7 @@
server = mock.Mock()
server.recv.return_value = b'42768\n'
with mock.patch.object(socket, 'socket', return_value=server):
- port = portpicker._GetPortFromPortServer('portserver', pid=1234)
+ port = portpicker.GetPortFromPortServer('portserver', pid=1234)
server.sendall.assert_called_once_with(b'1234\n')
self.assertEqual(port, 42768)
@@ -84,7 +84,7 @@
server.recv.return_value = b'52768\n'
with mock.patch.object(socket, 'socket', return_value=server):
with mock.patch.object(os, 'getpid', return_value=9876):
- port = portpicker._GetPortFromPortServer('portserver')
+ port = portpicker.GetPortFromPortServer('portserver')
server.sendall.assert_called_once_with(b'9876\n')
self.assertEqual(port, 52768)