add unit test for "advertised_ip_addresses" feature and fix bug in that feature uncovered by this unit test

This commit is contained in:
Zooko O'Whielacronx 2007-05-23 15:08:55 -07:00
parent 77f55f368a
commit 44902c5152
2 changed files with 44 additions and 1 deletions

View File

@ -111,7 +111,7 @@ class Node(service.MultiService):
(addr, dummy, aportnum,) = mo.groups() (addr, dummy, aportnum,) = mo.groups()
if aportnum is None: if aportnum is None:
aportnum = portnum aportnum = portnum
addresses.append("%s:%d" % (addr, aportnum,)) addresses.append("%s:%d" % (addr, int(aportnum),))
except EnvironmentError: except EnvironmentError:
pass pass

View File

@ -0,0 +1,43 @@
from twisted.trial import unittest
from twisted.internet import defer, reactor
from twisted.python import log
from foolscap import Tub, Referenceable
from foolscap.eventual import flushEventualQueue
from twisted.application import service
from allmydata.node import Node
from allmydata.util import idlib, testutil
class LoggingMultiService(service.MultiService):
def log(self, msg):
pass
class TestNode(Node):
CERTFILE='DEFAULT_CERTFILE_BLANK'
PORTNUMFILE='DEFAULT_PORTNUMFILE_BLANK'
class TestCase(unittest.TestCase, testutil.SignalMixin):
def setUp(self):
self.parent = LoggingMultiService()
self.parent.startService()
def tearDown(self):
log.msg("%s.tearDown" % self.__class__.__name__)
d = defer.succeed(None)
d.addCallback(lambda res: self.parent.stopService())
d.addCallback(flushEventualQueue)
return d
def test_advertised_ip_addresses(self):
open('advertised_ip_addresses','w').write('1.2.3.4:5')
n = TestNode()
n.setServiceParent(self.parent)
d = n.when_tub_ready()
def _check_addresses(ignored_result):
self.failUnless("1.2.3.4:5" in n.tub.registerReference(n), n.tub.registerReference(n))
d.addCallback(_check_addresses)
return d