diff --git a/src/allmydata/introducer/server.py b/src/allmydata/introducer/server.py index 9c756fef1..ef3e3c6d7 100644 --- a/src/allmydata/introducer/server.py +++ b/src/allmydata/introducer/server.py @@ -1,4 +1,5 @@ from past.builtins import long +from six import ensure_str import time, os.path, textwrap from zope.interface import implementer @@ -280,6 +281,7 @@ class IntroducerService(service.MultiService, Referenceable): def remote_subscribe_v2(self, subscriber, service_name, subscriber_info): self.log("introducer: subscription[%s] request at %s" % (service_name, subscriber), umid="U3uzLg") + service_name = ensure_str(service_name) return self.add_subscriber(subscriber, service_name, subscriber_info) def add_subscriber(self, subscriber, service_name, subscriber_info): @@ -303,6 +305,7 @@ class IntroducerService(service.MultiService, Referenceable): subscriber.notifyOnDisconnect(_remove) # now tell them about any announcements they're interested in + assert {type(service_name)} == set(type(k[0]) for k in self._announcements) announcements = set( [ ann_t for idx,(ann_t,canary,ann,when) in self._announcements.items() diff --git a/src/allmydata/test/test_introducer.py b/src/allmydata/test/test_introducer.py index f4d01b3d9..bdae11403 100644 --- a/src/allmydata/test/test_introducer.py +++ b/src/allmydata/test/test_introducer.py @@ -594,7 +594,7 @@ class SystemTest(SystemTestMixin, AsyncTestCase): self.failUnlessEqual(cdc["outbound_message"], expected) # now check the web status, make sure it renders without error ir = introweb.IntroducerRoot(self.parent) - self.parent.nodeid = "NODEID" + self.parent.nodeid = b"NODEID" log.msg("_check1 done") return flattenString(None, ir._create_element()) d.addCallback(_check1) @@ -604,7 +604,7 @@ class SystemTest(SystemTestMixin, AsyncTestCase): self.assertIn(NICKNAME % "0", text) # a v2 client self.assertIn(NICKNAME % "1", text) # another v2 client for i in range(NUM_STORAGE): - self.assertIn(printable_serverids[i], text, + self.assertIn(ensure_text(printable_serverids[i]), text, (i,printable_serverids[i],text)) # make sure there isn't a double-base32ed string too self.assertNotIn(idlib.nodeid_b2a(printable_serverids[i]), text, @@ -644,7 +644,7 @@ class SystemTest(SystemTestMixin, AsyncTestCase): self.create_tub(self.central_portnum) newfurl = self.central_tub.registerReference(self.the_introducer, furlFile=iff) - assert newfurl == self.introducer_furl + assert ensure_binary(newfurl) == self.introducer_furl d.addCallback(_restart_introducer_tub) d.addCallback(_wait_for_connected) @@ -696,7 +696,7 @@ class SystemTest(SystemTestMixin, AsyncTestCase): self.the_introducer = introducer newfurl = self.central_tub.registerReference(self.the_introducer, furlFile=iff) - assert newfurl == self.introducer_furl + assert ensure_binary(newfurl) == self.introducer_furl d.addCallback(_restart_introducer) d.addCallback(_wait_for_connected) diff --git a/src/allmydata/web/introweb.py b/src/allmydata/web/introweb.py index f57a5232a..171c155d7 100644 --- a/src/allmydata/web/introweb.py +++ b/src/allmydata/web/introweb.py @@ -105,7 +105,7 @@ class IntroducerRootElement(Element): if ad.service_name not in services: services[ad.service_name] = 0 services[ad.service_name] += 1 - service_names = services.keys() + service_names = list(services.keys()) service_names.sort() return u", ".join(u"{}: {}".format(service_name, services[service_name]) for service_name in service_names)