fix welcome-error signalling
The handler was calling _signal_error() incorrectly.
This commit is contained in:
parent
80c88387ef
commit
905ec05696
|
@ -7,13 +7,17 @@ from .. import __version__
|
||||||
|
|
||||||
class ServerBase:
|
class ServerBase:
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
self._setup_relay(None)
|
||||||
|
|
||||||
|
def _setup_relay(self, error):
|
||||||
self.sp = service.MultiService()
|
self.sp = service.MultiService()
|
||||||
self.sp.startService()
|
self.sp.startService()
|
||||||
relayport = allocate_tcp_port()
|
relayport = allocate_tcp_port()
|
||||||
transitport = allocate_tcp_port()
|
transitport = allocate_tcp_port()
|
||||||
s = RelayServer("tcp:%d:interface=127.0.0.1" % relayport,
|
s = RelayServer("tcp:%d:interface=127.0.0.1" % relayport,
|
||||||
"tcp:%s:interface=127.0.0.1" % transitport,
|
"tcp:%s:interface=127.0.0.1" % transitport,
|
||||||
__version__)
|
advertise_version=__version__,
|
||||||
|
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
|
||||||
|
|
|
@ -7,7 +7,7 @@ from twisted.internet.defer import gatherResults, inlineCallbacks
|
||||||
from .. import __version__
|
from .. import __version__
|
||||||
from .common import ServerBase
|
from .common import ServerBase
|
||||||
from ..cli import runner, cmd_send, cmd_receive
|
from ..cli import runner, cmd_send, cmd_receive
|
||||||
from ..errors import TransferError, WrongPasswordError
|
from ..errors import TransferError, WrongPasswordError, WelcomeError
|
||||||
from ..timing import DebugTiming
|
from ..timing import DebugTiming
|
||||||
|
|
||||||
def build_offer(args):
|
def build_offer(args):
|
||||||
|
@ -517,6 +517,43 @@ class PregeneratedCode(ServerBase, ScriptsBase, unittest.TestCase):
|
||||||
with open(fn, "r") as f:
|
with open(fn, "r") as f:
|
||||||
self.failUnlessEqual(f.read(), PRESERVE)
|
self.failUnlessEqual(f.read(), PRESERVE)
|
||||||
|
|
||||||
|
class NotWelcome(ServerBase, unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self._setup_relay(error=u"please upgrade XYZ")
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
|
def test_sender(self):
|
||||||
|
common_args = ["--hide-progress", "--no-listen",
|
||||||
|
"--relay-url", self.relayurl,
|
||||||
|
"--transit-helper", ""]
|
||||||
|
send_args = common_args + [ "send", "--text", "hi",
|
||||||
|
"--code", u"1-abc" ]
|
||||||
|
sargs = runner.parser.parse_args(send_args)
|
||||||
|
sargs.cwd = self.mktemp()
|
||||||
|
sargs.stdout = io.StringIO()
|
||||||
|
sargs.stderr = io.StringIO()
|
||||||
|
sargs.timing = DebugTiming()
|
||||||
|
|
||||||
|
send_d = cmd_send.send(sargs)
|
||||||
|
f = yield self.assertFailure(send_d, WelcomeError)
|
||||||
|
self.assertEqual(str(f), "please upgrade XYZ")
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
|
def test_receiver(self):
|
||||||
|
common_args = ["--hide-progress", "--no-listen",
|
||||||
|
"--relay-url", self.relayurl,
|
||||||
|
"--transit-helper", ""]
|
||||||
|
receive_args = common_args + [ "receive", u"1-abc" ]
|
||||||
|
rargs = runner.parser.parse_args(receive_args)
|
||||||
|
rargs.cwd = self.mktemp()
|
||||||
|
rargs.stdout = io.StringIO()
|
||||||
|
rargs.stderr = io.StringIO()
|
||||||
|
rargs.timing = DebugTiming()
|
||||||
|
|
||||||
|
receive_d = cmd_receive.receive(rargs)
|
||||||
|
f = yield self.assertFailure(receive_d, WelcomeError)
|
||||||
|
self.assertEqual(str(f), "please upgrade XYZ")
|
||||||
|
|
||||||
class Cleanup(ServerBase, unittest.TestCase):
|
class Cleanup(ServerBase, unittest.TestCase):
|
||||||
@inlineCallbacks
|
@inlineCallbacks
|
||||||
def test_text(self):
|
def test_text(self):
|
||||||
|
|
|
@ -87,10 +87,12 @@ class Welcome(unittest.TestCase):
|
||||||
|
|
||||||
w.handle_welcome({u"error": u"oops"})
|
w.handle_welcome({u"error": u"oops"})
|
||||||
self.assertEqual(len(se.mock_calls), 1)
|
self.assertEqual(len(se.mock_calls), 1)
|
||||||
self.assertEqual(len(se.mock_calls[0][1]), 1) # posargs
|
self.assertEqual(len(se.mock_calls[0][1]), 2) # posargs
|
||||||
we = se.mock_calls[0][1][0]
|
we = se.mock_calls[0][1][0]
|
||||||
self.assertIsInstance(we, WelcomeError)
|
self.assertIsInstance(we, WelcomeError)
|
||||||
self.assertEqual(we.args, (u"oops",))
|
self.assertEqual(we.args, (u"oops",))
|
||||||
|
mood = se.mock_calls[0][1][1]
|
||||||
|
self.assertEqual(mood, u"unwelcome")
|
||||||
# alas WelcomeError instances don't compare against each other
|
# alas WelcomeError instances don't compare against each other
|
||||||
#self.assertEqual(se.mock_calls, [mock.call(WelcomeError(u"oops"))])
|
#self.assertEqual(se.mock_calls, [mock.call(WelcomeError(u"oops"))])
|
||||||
|
|
||||||
|
|
|
@ -205,7 +205,8 @@ class _WelcomeHandler:
|
||||||
self._version_warning_displayed = True
|
self._version_warning_displayed = True
|
||||||
|
|
||||||
if "error" in welcome:
|
if "error" in welcome:
|
||||||
return self._signal_error(WelcomeError(welcome["error"]))
|
return self._signal_error(WelcomeError(welcome["error"]),
|
||||||
|
u"unwelcome")
|
||||||
|
|
||||||
# states for nameplates, mailboxes, and the websocket connection
|
# states for nameplates, mailboxes, and the websocket connection
|
||||||
(CLOSED, OPENING, OPEN, CLOSING) = ("closed", "opening", "open", "closing")
|
(CLOSED, OPENING, OPEN, CLOSING) = ("closed", "opening", "open", "closing")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user