unit-test for relay request, and fix Data() handling

This commit is contained in:
meejah 2016-06-18 00:20:18 -06:00 committed by Brian Warner
parent 1170f196b3
commit 07b4067727
3 changed files with 16 additions and 8 deletions

View File

@ -1,4 +1,6 @@
from __future__ import print_function, unicode_literals # NO unicode_literals or static.Data() will break, because it demands
# a str on Python 2
from __future__ import print_function
from twisted.python import log from twisted.python import log
from twisted.internet import reactor, endpoints from twisted.internet import reactor, endpoints
from twisted.application import service from twisted.application import service

View File

@ -13,21 +13,21 @@ class ServerBase:
def _setup_relay(self, error): def _setup_relay(self, error):
self.sp = service.MultiService() self.sp = service.MultiService()
self.sp.startService() self.sp.startService()
relayport = allocate_tcp_port() self.relayport = allocate_tcp_port()
transitport = allocate_tcp_port() self.transitport = allocate_tcp_port()
# need to talk to twisted team about only using unicode in # need to talk to twisted team about only using unicode in
# endpoints.serverFromString # endpoints.serverFromString
s = RelayServer("tcp:%d:interface=127.0.0.1" % relayport, s = RelayServer("tcp:%d:interface=127.0.0.1" % self.relayport,
"tcp:%s:interface=127.0.0.1" % transitport, "tcp:%s:interface=127.0.0.1" % self.transitport,
advertise_version=__version__, advertise_version=__version__,
signal_error=error) signal_error=error)
s.setServiceParent(self.sp) s.setServiceParent(self.sp)
self._rendezvous = s._rendezvous self._rendezvous = s._rendezvous
self._transit_server = s._transit self._transit_server = s._transit
self.relayurl = u"ws://127.0.0.1:%d/v1" % relayport self.relayurl = u"ws://127.0.0.1:%d/v1" % self.relayport
self.rdv_ws_port = relayport self.rdv_ws_port = self.relayport
# ws://127.0.0.1:%d/wormhole-relay/ws # ws://127.0.0.1:%d/wormhole-relay/ws
self.transit = u"tcp:127.0.0.1:%d" % transitport self.transit = u"tcp:127.0.0.1:%d" % self.transitport
def tearDown(self): def tearDown(self):
# Unit tests that spawn a (blocking) client in a thread might still # Unit tests that spawn a (blocking) client in a thread might still

View File

@ -7,6 +7,7 @@ from twisted.python import log
from twisted.internet import protocol, reactor, defer from twisted.internet import protocol, reactor, defer
from twisted.internet.defer import inlineCallbacks, returnValue from twisted.internet.defer import inlineCallbacks, returnValue
from twisted.internet.endpoints import clientFromString, connectProtocol from twisted.internet.endpoints import clientFromString, connectProtocol
from twisted.web import client
from autobahn.twisted import websocket from autobahn.twisted import websocket
from .. import __version__ from .. import __version__
from .common import ServerBase from .common import ServerBase
@ -1030,6 +1031,11 @@ class Transit(ServerBase, unittest.TestCase):
self.failUnlessEqual(blur(1100e6), 1100e6) self.failUnlessEqual(blur(1100e6), 1100e6)
self.failUnlessEqual(blur(1150e6), 1200e6) self.failUnlessEqual(blur(1150e6), 1200e6)
@defer.inlineCallbacks
def test_web_request(self):
resp = yield client.getPage('http://127.0.0.1:{}/'.format(self.relayport).encode('ascii'))
self.assertEqual('Wormhole Relay'.encode('ascii'), resp.strip())
@defer.inlineCallbacks @defer.inlineCallbacks
def test_basic(self): def test_basic(self):
ep = clientFromString(reactor, self.transit) ep = clientFromString(reactor, self.transit)