mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-20 17:52:50 +00:00
Minimal testing for listenOnUnused.
This commit is contained in:
parent
f9bda5bbd3
commit
817355d17e
@ -13,10 +13,12 @@ from future.utils import PY2, native_str
|
||||
if PY2:
|
||||
from builtins import filter, map, zip, ascii, chr, hex, input, next, oct, open, pow, round, super, bytes, dict, int, list, object, range, str, max, min # noqa: F401
|
||||
|
||||
import re, errno, subprocess, os
|
||||
import re, errno, subprocess, os, socket
|
||||
|
||||
from twisted.trial import unittest
|
||||
|
||||
from foolscap.api import Tub
|
||||
|
||||
from allmydata.util import iputil
|
||||
import allmydata.test.common_py3 as testutil
|
||||
from allmydata.util.namespace import Namespace
|
||||
@ -183,3 +185,32 @@ class ListAddresses(testutil.SignalMixin, unittest.TestCase):
|
||||
def test_list_async_mock_cygwin(self):
|
||||
self.patch(iputil, 'platform', "cygwin")
|
||||
return self._test_list_async_mock(None, None, CYGWIN_TEST_ADDRESSES)
|
||||
|
||||
|
||||
class ListenOnUsed(unittest.TestCase):
|
||||
"""Tests for listenOnUnused."""
|
||||
|
||||
def create_tub(self, basedir):
|
||||
os.makedirs(basedir)
|
||||
tubfile = os.path.join(basedir, "tub.pem")
|
||||
tub = Tub(certFile=tubfile)
|
||||
tub.setOption("expose-remote-exception-types", False)
|
||||
tub.startService()
|
||||
self.addCleanup(tub.stopService)
|
||||
return tub
|
||||
|
||||
def test_random_port(self):
|
||||
"""A random port is selected if none is given."""
|
||||
tub = self.create_tub("utils/ListenOnUsed/test_randomport")
|
||||
self.assertEqual(len(tub.getListeners()), 0)
|
||||
portnum = iputil.listenOnUnused(tub)
|
||||
# We can connect to this port:
|
||||
s = socket.socket()
|
||||
s.connect(("127.0.0.1", portnum))
|
||||
s.close()
|
||||
self.assertEqual(len(tub.getListeners()), 1)
|
||||
|
||||
# Listen on another port:
|
||||
tub2 = self.create_tub("utils/ListenOnUsed/test_randomport_2")
|
||||
portnum2 = iputil.listenOnUnused(tub2)
|
||||
self.assertNotEqual(portnum, portnum2)
|
||||
|
@ -379,4 +379,5 @@ __all__ = ["allocate_tcp_port",
|
||||
"get_local_addresses_sync",
|
||||
"get_local_addresses_async",
|
||||
"get_local_ip_for",
|
||||
"listenOnUnused",
|
||||
]
|
||||
|
Loading…
x
Reference in New Issue
Block a user