def test_quit_no_protocol(self): tor = Tor(Mock(), Mock()) tor._protocol = None tor._process_protocol = None with self.assertRaises(RuntimeError) as ctx: yield tor.quit() self.assertTrue('no protocol instance' in str(ctx.exception))
def setUp(self): reactor = Mock() proto = Mock() proto.get_conf = Mock( return_value=defer.succeed({"SocksPort": "9050"})) self.cfg = Mock() self.tor = Tor(reactor, proto, _tor_config=self.cfg)
def setUp(self): reactor = Mock() proto = Mock() directlyProvides(proto, ITorControlProtocol) self.cfg = TorConfig() self.cfg.HidServAuth = ["existing.onion some_token"] self.tor = Tor(reactor, proto, _tor_config=self.cfg)
def test_dns_resolve_ptr(self, fake_socks): answer = object() proto = Mock() proto.get_conf = Mock( return_value=defer.succeed({"SocksPort": "9050"})) tor = Tor(Mock(), proto) fake_socks.resolve_ptr = Mock(return_value=defer.succeed(answer)) ans = yield tor.dns_resolve_ptr("4.3.2.1") self.assertEqual(ans, answer)
def test_dns_resolve(self, fake_socks): answer = object() cfg = Mock() proto = Mock() proto.get_conf = Mock( return_value=defer.succeed({"SocksPort": "9050"})) tor = Tor(Mock(), proto, _tor_config=cfg) fake_socks.resolve = Mock(return_value=defer.succeed(answer)) ans = yield tor.dns_resolve("meejah.ca") self.assertEqual(ans, answer)
def test_web_agent_error(self): reactor = Mock() cfg = Mock() proto = Mock() directlyProvides(proto, ITorControlProtocol) tor = Tor(reactor, proto, _tor_config=cfg) with self.assertRaises(ValueError) as ctx: agent = tor.web_agent(pool=self.pool, socks_endpoint=object()) yield agent.request('GET', b'meejah.ca') self.assertTrue("'socks_endpoint' should be" in str(ctx.exception))
def test_web_agent_deferred(self): socks_d = defer.succeed("9151") reactor = Mock() cfg = Mock() proto = Mock() directlyProvides(proto, ITorControlProtocol) tor = Tor(reactor, proto, _tor_config=cfg) agent = tor.web_agent(pool=self.pool, socks_endpoint=socks_d) resp = yield agent.request('GET', b'meejah.ca') self.assertEqual(self.expected_response, resp)
def test_web_agent_endpoint(self): socks = Mock() directlyProvides(socks, IStreamClientEndpoint) reactor = Mock() cfg = Mock() proto = Mock() directlyProvides(proto, ITorControlProtocol) tor = Tor(reactor, proto, _tor_config=cfg) agent = tor.web_agent(pool=self.pool, socks_endpoint=socks) resp = yield agent.request('GET', b'meejah.ca') self.assertEqual(self.expected_response, resp)
def test_dns_resolve_existing_socks(self, fake_socks): answer = object() proto = Mock() proto.get_conf = Mock( return_value=defer.succeed({"SocksPort": "9050"})) tor = Tor(Mock(), proto) fake_socks.resolve = Mock(return_value=defer.succeed(answer)) ans0 = yield tor.dns_resolve("meejah.ca") # do it again to exercise the _default_socks_port() case when # we already got the default fake_socks.resolve = Mock(return_value=defer.succeed(answer)) ans1 = yield tor.dns_resolve("meejah.ca") self.assertEqual(ans0, answer) self.assertEqual(ans1, answer)
def test_dns_resolve_no_configured_socks(self, fake_socks): answer = object() proto = Mock() proto.get_conf = Mock( return_value=defer.succeed({"SocksPort": "9050"})) cfg = Mock() tor = Tor(Mock(), proto, _tor_config=cfg) def boom(*args, **kw): raise RuntimeError("no socks") cfg.socks_endpoint = Mock(side_effect=boom) fake_socks.resolve = Mock(return_value=defer.succeed(answer)) ans = yield tor.dns_resolve("meejah.ca") self.assertEqual(ans, answer)
def test_web_agent_defaults(self): reactor = Mock() # XXX is there a faster way to do this? better reactor fake? fake_host = Mock() fake_host.port = 1234 fake_port = Mock() fake_port.getHost = Mock(return_value=fake_host) reactor.listenTCP = Mock(return_value=fake_port) cfg = Mock() cfg.create_socks_endpoint = Mock(return_value=defer.succeed("9050")) proto = Mock() proto.get_conf = Mock(return_value=defer.succeed({})) directlyProvides(proto, ITorControlProtocol) tor = Tor(reactor, proto, _tor_config=cfg) try: agent = tor.web_agent(pool=self.pool) except ImportError as e: if 'IAgentEndpointFactory' in str(e): print("Skipping; appears we don't have web support") return resp = yield agent.request('GET', b'meejah.ca') self.assertEqual(self.expected_response, resp)
def test_quit(self): tor = Tor(Mock(), Mock()) tor._protocol = Mock() tor._process_protocol = Mock() yield tor.quit()
def test_create_state(self): tor = Tor(Mock(), Mock()) with patch('txtorcon.controller.TorState') as ts: ts.post_boostrap = defer.succeed('boom') yield tor.create_state()
def setUp(self): reactor = Mock() self.proto = Mock() self.cfg = Mock() self.tor = Tor(reactor, self.proto, _tor_config=self.cfg) self.tor.dns_resolve = Mock()
def setUp(self): reactor = Mock() proto = Mock() directlyProvides(proto, ITorControlProtocol) self.tor = Tor(reactor, proto)
def test_str(self): tor = Tor(Mock(), Mock()) str(tor)
def bam(*args, **kw): self.config.bootstrap() return defer.succeed(Tor(Mock(), self.protocol, _tor_config=self.config))
def bam(*args, **kw): self.config.bootstrap() return defer.succeed(Tor(Mock(), self.config))