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: | ||||
|     def setUp(self): | ||||
|         self._setup_relay(None) | ||||
| 
 | ||||
|     def _setup_relay(self, error): | ||||
|         self.sp = service.MultiService() | ||||
|         self.sp.startService() | ||||
|         relayport = allocate_tcp_port() | ||||
|         transitport = allocate_tcp_port() | ||||
|         s = RelayServer("tcp:%d:interface=127.0.0.1" % relayport, | ||||
|                         "tcp:%s:interface=127.0.0.1" % transitport, | ||||
|                         __version__) | ||||
|                         advertise_version=__version__, | ||||
|                         signal_error=error) | ||||
|         s.setServiceParent(self.sp) | ||||
|         self._rendezvous = s._rendezvous | ||||
|         self._transit_server = s._transit | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ from twisted.internet.defer import gatherResults, inlineCallbacks | |||
| from .. import __version__ | ||||
| from .common import ServerBase | ||||
| from ..cli import runner, cmd_send, cmd_receive | ||||
| from ..errors import TransferError, WrongPasswordError | ||||
| from ..errors import TransferError, WrongPasswordError, WelcomeError | ||||
| from ..timing import DebugTiming | ||||
| 
 | ||||
| def build_offer(args): | ||||
|  | @ -517,6 +517,43 @@ class PregeneratedCode(ServerBase, ScriptsBase, unittest.TestCase): | |||
|         with open(fn, "r") as f: | ||||
|             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): | ||||
|     @inlineCallbacks | ||||
|     def test_text(self): | ||||
|  |  | |||
|  | @ -87,10 +87,12 @@ class Welcome(unittest.TestCase): | |||
| 
 | ||||
|         w.handle_welcome({u"error": u"oops"}) | ||||
|         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] | ||||
|         self.assertIsInstance(we, WelcomeError) | ||||
|         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 | ||||
|         #self.assertEqual(se.mock_calls, [mock.call(WelcomeError(u"oops"))]) | ||||
| 
 | ||||
|  |  | |||
|  | @ -205,7 +205,8 @@ class _WelcomeHandler: | |||
|             self._version_warning_displayed = True | ||||
| 
 | ||||
|         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 | ||||
| (CLOSED, OPENING, OPEN, CLOSING) = ("closed", "opening", "open", "closing") | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user