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.internet import reactor, endpoints
from twisted.application import service

View File

@ -13,21 +13,21 @@ class ServerBase:
def _setup_relay(self, error):
self.sp = service.MultiService()
self.sp.startService()
relayport = allocate_tcp_port()
transitport = allocate_tcp_port()
self.relayport = allocate_tcp_port()
self.transitport = allocate_tcp_port()
# need to talk to twisted team about only using unicode in
# endpoints.serverFromString
s = RelayServer("tcp:%d:interface=127.0.0.1" % relayport,
"tcp:%s:interface=127.0.0.1" % transitport,
s = RelayServer("tcp:%d:interface=127.0.0.1" % self.relayport,
"tcp:%s:interface=127.0.0.1" % self.transitport,
advertise_version=__version__,
signal_error=error)
s.setServiceParent(self.sp)
self._rendezvous = s._rendezvous
self._transit_server = s._transit
self.relayurl = u"ws://127.0.0.1:%d/v1" % relayport
self.rdv_ws_port = relayport
self.relayurl = u"ws://127.0.0.1:%d/v1" % self.relayport
self.rdv_ws_port = self.relayport
# 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):
# 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.defer import inlineCallbacks, returnValue
from twisted.internet.endpoints import clientFromString, connectProtocol
from twisted.web import client
from autobahn.twisted import websocket
from .. import __version__
from .common import ServerBase
@ -1030,6 +1031,11 @@ class Transit(ServerBase, unittest.TestCase):
self.failUnlessEqual(blur(1100e6), 1100e6)
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
def test_basic(self):
ep = clientFromString(reactor, self.transit)