diff options
| -rw-r--r-- | ooni/nettests/blocking/bridge_reachability.py | 11 | ||||
| -rw-r--r-- | ooni/nettests/blocking/vanilla_tor.py | 6 | ||||
| -rw-r--r-- | ooni/tests/test_onion.py | 24 | ||||
| -rw-r--r-- | ooni/utils/onion.py | 25 | ||||
| -rw-r--r-- | setup.py | 1 |
5 files changed, 41 insertions, 26 deletions
diff --git a/ooni/nettests/blocking/bridge_reachability.py b/ooni/nettests/blocking/bridge_reachability.py index e5cc512e..870dcfa1 100644 --- a/ooni/nettests/blocking/bridge_reachability.py +++ b/ooni/nettests/blocking/bridge_reachability.py @@ -48,6 +48,8 @@ class BridgeReachability(nettest.NetTestCase): def setUp(self): self.tor_progress = 0 + self.tor_details = onion.get_tor_details() + self.obfsproxy_details = onion.get_obfsproxy_details() self.timeout = int(self.localOptions['timeout']) fd, self.tor_logfile = tempfile.mkstemp() @@ -60,12 +62,12 @@ class BridgeReachability(nettest.NetTestCase): self.report['success'] = None self.report['timeout'] = self.timeout self.report['transport_name'] = 'vanilla' - self.report['tor_version'] = str(onion.tor_details['version']) + self.report['tor_version'] = str(self.tor_details['version']) self.report['tor_progress'] = 0 self.report['tor_progress_tag'] = None self.report['tor_progress_summary'] = None self.report['tor_log'] = None - self.report['obfsproxy_version'] = str(onion.obfsproxy_details['version']) + self.report['obfsproxy_version'] = str(self.obfsproxy_details['version']) self.report['obfsproxy_log'] = None self.report['bridge_address'] = None @@ -128,7 +130,7 @@ class BridgeReachability(nettest.NetTestCase): config.DataDirectory = self.tor_datadir log.msg( "Connecting to %s with tor %s" % - (self.bridge, onion.tor_details['version'])) + (self.bridge, self.tor_details['version'])) transport_name = onion.transport_name(self.bridge) if transport_name == None: @@ -175,7 +177,8 @@ class BridgeReachability(nettest.NetTestCase): self.report['tor_progress_tag'] = tag self.report['tor_progress_summary'] = summary - d = txtorcon.launch_tor(config, reactor, timeout=self.timeout, + d = txtorcon.launch_tor(config, reactor, tor_binary=onion.find_tor_binary(), + timeout=self.timeout, progress_updates=updates) @d.addCallback diff --git a/ooni/nettests/blocking/vanilla_tor.py b/ooni/nettests/blocking/vanilla_tor.py index 717fa733..a147be89 100644 --- a/ooni/nettests/blocking/vanilla_tor.py +++ b/ooni/nettests/blocking/vanilla_tor.py @@ -39,6 +39,7 @@ class VanillaTor(nettest.NetTestCase): def setUp(self): self.tor_progress = 0 + self.tor_details = onion.get_tor_details() self.timeout = int(self.localOptions['timeout']) fd, self.tor_logfile = tempfile.mkstemp() @@ -49,7 +50,7 @@ class VanillaTor(nettest.NetTestCase): self.report['success'] = None self.report['timeout'] = self.timeout self.report['transport_name'] = 'vanilla' - self.report['tor_version'] = str(onion.tor_details['version']) + self.report['tor_version'] = str(self.tor_details['version']) self.report['tor_progress'] = 0 self.report['tor_progress_tag'] = None self.report['tor_progress_summary'] = None @@ -73,7 +74,8 @@ class VanillaTor(nettest.NetTestCase): self.report['tor_progress_tag'] = tag self.report['tor_progress_summary'] = summary - d = txtorcon.launch_tor(config, reactor, timeout=self.timeout, + d = txtorcon.launch_tor(config, reactor, tor_binary=onion.find_tor_binary(), + timeout=self.timeout, progress_updates=updates) @d.addCallback diff --git a/ooni/tests/test_onion.py b/ooni/tests/test_onion.py index 732614fb..20023211 100644 --- a/ooni/tests/test_onion.py +++ b/ooni/tests/test_onion.py @@ -26,9 +26,10 @@ class MockSuccessTorProtocol(object): class TestOnion(unittest.TestCase): def test_tor_details(self): - assert isinstance(onion.tor_details, dict) - assert onion.tor_details['version'] - assert onion.tor_details['binary'] + tor_details = onion.get_tor_details() + assert isinstance(tor_details, dict) + assert tor_details['version'] + assert tor_details['binary'] def test_transport_dicts(self): @@ -48,21 +49,26 @@ class TestOnion(unittest.TestCase): self.assertEqual(onion.bridge_line(transport, '/log.txt'), exp_line) - with patch.dict(onion.obfsproxy_details, - {'version': onion.OBFSProxyVersion('0.1.12')}): + def mock_get_details(value): + def mocked_get_details(): + return value + return mocked_get_details + + with patch('ooni.utils.onion.get_obfsproxy_details', + mock_get_details({'version': onion.OBFSProxyVersion('0.1.12')})): self.assertRaises(onion.OutdatedObfsproxy, onion.bridge_line, 'obfs2', '/log.txt') - with patch.dict(onion.tor_details, - {'version': onion.TorVersion('0.2.4.20')}): + with patch('ooni.utils.onion.get_tor_details', + mock_get_details({'version': onion.TorVersion('0.2.4.20')})): onion.bridge_line('fte', '/log.txt') self.assertRaises(onion.OutdatedTor, onion.bridge_line, 'scramblesuit', '/log.txt') self.assertRaises(onion.OutdatedTor, onion.bridge_line, 'obfs4', '/log.txt') - with patch.dict(onion.tor_details, - {'version': onion.TorVersion('0.2.3.20')}): + with patch('ooni.utils.onion.get_tor_details', + mock_get_details({'version': onion.TorVersion('0.2.3.20')})): self.assertRaises(onion.OutdatedTor, onion.bridge_line, 'fte', '/log.txt') diff --git a/ooni/utils/onion.py b/ooni/utils/onion.py index 283579cd..2c2a2c81 100644 --- a/ooni/utils/onion.py +++ b/ooni/utils/onion.py @@ -98,15 +98,17 @@ def find_pt_executable(name): return bin_loc return None -tor_details = { - 'binary': find_tor_binary(), - 'version': tor_version() -} - -obfsproxy_details = { - 'binary': find_executable('obfsproxy'), - 'version': obfsproxy_version() -} +def get_tor_details(): + return { + 'binary': find_tor_binary(), + 'version': tor_version() + } + +def get_obfsproxy_details(): + return { + 'binary': find_executable('obfsproxy'), + 'version': obfsproxy_version() + } transport_bin_name = { 'fte': 'fteproxy', 'scramblesuit': 'obfsproxy', @@ -148,6 +150,9 @@ class OutdatedTor(Exception): pass def bridge_line(transport, log_file): + obfsproxy_details = get_obfsproxy_details() + tor_details = get_tor_details() + bin_name = transport_bin_name.get(transport) if not bin_name: raise UnrecognizedTransport @@ -387,7 +392,7 @@ class TorLauncherWithRetries(object): def _launch_tor(self): return launch_tor(self.tor_config, reactor, - tor_binary=config.advanced.tor_binary, + tor_binary=find_tor_binary(), progress_updates=self._progress_updates, stdout=self.tor_output, timeout=self.timeout, @@ -279,7 +279,6 @@ def setup_package(): }, classifiers=[c for c in CLASSIFIERS.split('\n') if c] ) - setup(**metadata) if __name__ == "__main__": |
