def test_successful_proxy_connect(self, fake_sleep): endpoint = Mock() directlyProvides(endpoint, IStreamClientEndpoint) component = Component( transports={ "type": "websocket", "url": "ws://127.0.0.1/ws", "endpoint": endpoint, "proxy": { "host": "10.0.0.0", "port": 65000, }, "max_retries": 0, }, is_fatal=lambda _: True, ) @component.on_join def joined(session, details): return session.leave() def connect(factory, **kw): return succeed(Mock()) endpoint.connect = connect # XXX it would actually be nicer if we *could* support # passing a reactor in here, but the _batched_timer = # make_batched_timer() stuff (slash txaio in general) # makes this "hard". reactor = Clock() got_proxy_connect = Deferred() def _tcp(host, port, factory, **kw): self.assertEqual("10.0.0.0", host) self.assertEqual(port, 65000) got_proxy_connect.callback(None) return endpoint.connect(factory._wrappedFactory) reactor.connectTCP = _tcp with replace_loop(reactor): d = component.start(reactor=reactor) def done(x): if not got_proxy_connect.called: got_proxy_connect.callback(x) # make sure we fire all our time-outs d.addCallbacks(done, done) reactor.advance(3600) return got_proxy_connect
def test_successful_proxy_connect(self, fake_sleep): endpoint = Mock() directlyProvides(endpoint, IStreamClientEndpoint) component = Component( transports={ u"type": u"websocket", u"url": u"ws://127.0.0.1/ws", u"endpoint": endpoint, u"proxy": { u"host": u"10.0.0.0", u"port": 65000, }, u"max_retries": 0, }, is_fatal=lambda _: True, ) @component.on_join def joined(session, details): return session.leave() def connect(factory, **kw): return succeed(Mock()) endpoint.connect = connect # XXX it would actually be nicer if we *could* support # passing a reactor in here, but the _batched_timer = # make_batched_timer() stuff (slash txaio in general) # makes this "hard". reactor = Clock() got_proxy_connect = Deferred() def _tcp(host, port, factory, **kw): self.assertEqual("10.0.0.0", host) self.assertEqual(port, 65000) got_proxy_connect.callback(None) return endpoint.connect(factory._wrappedFactory) reactor.connectTCP = _tcp with replace_loop(reactor): d = component.start(reactor=reactor) def done(x): if not got_proxy_connect.called: got_proxy_connect.callback(x) # make sure we fire all our time-outs d.addCallbacks(done, done) reactor.advance(3600) return got_proxy_connect