diff --git a/src/allmydata/node.py b/src/allmydata/node.py index d93fb5324..c257868b4 100644 --- a/src/allmydata/node.py +++ b/src/allmydata/node.py @@ -401,6 +401,11 @@ class Node(service.MultiService): if port in ("0", "tcp:0"): raise ValueError("tub.port cannot be 0: you must choose") if port == "listen:i2p": + # the I2P provider will read its section of tahoe.cfg and + # return either a fully-formed Endpoint, or a descriptor + # that will create one, so we don't have to stuff all the + # options into the tub.port string (which would need a lot + # of escaping) port_or_endpoint = self._i2p_provider.get_listener() elif port == "listen:tor": port_or_endpoint = self._tor_provider.get_listener() diff --git a/src/allmydata/test/test_i2p_provider.py b/src/allmydata/test/test_i2p_provider.py index dc328476e..081be0fc7 100644 --- a/src/allmydata/test/test_i2p_provider.py +++ b/src/allmydata/test/test_i2p_provider.py @@ -294,8 +294,13 @@ class Provider(unittest.TestCase): self.assertIs(h, handler) i2p.default.assert_called_with(reactor, keyfile=None) -class Provider_Listener(unittest.TestCase): +class ProviderListener(unittest.TestCase): def test_listener(self): + """Does the I2P Provider object's get_listener() method correctly + convert the [i2p] section of tahoe.cfg into an + endpoint/descriptor? + """ + i2p = mock.Mock() handler = object() i2p.local_i2p = mock.Mock(return_value=handler) diff --git a/src/allmydata/test/test_tor_provider.py b/src/allmydata/test/test_tor_provider.py index a40698f86..0a1f589bf 100644 --- a/src/allmydata/test/test_tor_provider.py +++ b/src/allmydata/test/test_tor_provider.py @@ -393,8 +393,12 @@ class Provider(unittest.TestCase): self.assertIs(h, handler) tor.default_socks.assert_called_with() -class Provider_Listener(unittest.TestCase): +class ProviderListener(unittest.TestCase): def test_listener(self): + """Does the Tor Provider object's get_listener() method correctly + convert the [tor] section of tahoe.cfg into an + endpoint/descriptor? + """ tor = mock.Mock() handler = object() tor.socks_endpoint = mock.Mock(return_value=handler)