[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [stem/master] tor-prompt requires the readline module
commit fb35e3f68477611b39729125e0ae0b3d6d6cfe82
Author: Damian Johnson <atagar@xxxxxxxxxxxxxx>
Date: Fri Jan 3 14:13:22 2020 -0800
tor-prompt requires the readline module
When compiling Python ourselves several modules (most notably compression) are
unavailable by default. Turns out readline is one of those, so we cannot assume
it is always present...
======================================================================
ERROR: test_running_command
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/stem/stem/util/system.py", line 1329, in call
raise OSError('%s returned exit status %i' % (command, exit_status))
OSError: ['/home/atagar/Python-3.7.0/python', '/home/atagar/Desktop/stem/tor-prompt', '--interface', 1111, '--run', 'GETINFO config-file'] returned exit status 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/atagar/Desktop/stem/test/require.py", line 58, in wrapped
return func(self, *args, **kwargs)
File "/home/atagar/Desktop/stem/test/integ/interpreter.py", line 36, in test_running_command
self.assertEqual(expected, _run_prompt('--run', 'GETINFO config-file'))
File "/home/atagar/Desktop/stem/test/integ/interpreter.py", line 20, in _run_prompt
return stem.util.system.call([sys.executable, PROMPT_CMD, '--interface', test.runner.CONTROL_PORT] + list(args))
File "/home/atagar/Desktop/stem/stem/util/system.py", line 1348, in call
raise CallError(str(exc), ' '.join(command_list), exit_status, runtime, stdout, stderr)
stem.util.system.CallError: ['/home/atagar/Python-3.7.0/python', '/home/atagar/Desktop/stem/tor-prompt', '--interface', 1111, '--run', 'GETINFO config-file'] returned exit status 1
======================================================================
ERROR: test_running_file
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/stem/stem/util/system.py", line 1329, in call
raise OSError('%s returned exit status %i' % (command, exit_status))
OSError: ['/home/atagar/Python-3.7.0/python', '/home/atagar/Desktop/stem/tor-prompt', '--interface', 1111, '--run', '/tmp/test_commands.wmb8rcb8'] returned exit status 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/atagar/Desktop/stem/test/require.py", line 58, in wrapped
return func(self, *args, **kwargs)
File "/home/atagar/Desktop/stem/test/integ/interpreter.py", line 56, in test_running_file
self.assertEqual(expected, _run_prompt('--run', tmp.name))
File "/home/atagar/Desktop/stem/test/integ/interpreter.py", line 20, in _run_prompt
return stem.util.system.call([sys.executable, PROMPT_CMD, '--interface', test.runner.CONTROL_PORT] + list(args))
File "/home/atagar/Desktop/stem/stem/util/system.py", line 1348, in call
raise CallError(str(exc), ' '.join(command_list), exit_status, runtime, stdout, stderr)
stem.util.system.CallError: ['/home/atagar/Python-3.7.0/python', '/home/atagar/Desktop/stem/tor-prompt', '--interface', 1111, '--run', '/tmp/test_commands.wmb8rcb8'] returned exit status 1
---
stem/interpreter/__init__.py | 6 +++++-
test/integ/interpreter.py | 14 ++++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/stem/interpreter/__init__.py b/stem/interpreter/__init__.py
index bd623120..30af3f62 100644
--- a/stem/interpreter/__init__.py
+++ b/stem/interpreter/__init__.py
@@ -44,7 +44,11 @@ def msg(message, config, **attr):
def main():
- import readline
+ try:
+ import readline
+ except ImportError:
+ print('tor-prompt requires the readline module')
+ sys.exit(1)
import stem.interpreter.arguments
import stem.interpreter.autocomplete
diff --git a/test/integ/interpreter.py b/test/integ/interpreter.py
index e3664d87..65d03fd3 100644
--- a/test/integ/interpreter.py
+++ b/test/integ/interpreter.py
@@ -12,6 +12,14 @@ import test
import test.require
import test.runner
+try:
+ # when compiled ourselves the readline module might be unavailable
+
+ import readline
+ READLINE_AVAILABLE = True
+except ImportError:
+ READLINE_AVAILABLE = False
+
PROMPT_CMD = os.path.join(test.STEM_BASE, 'tor-prompt')
@@ -31,6 +39,9 @@ class TestInterpreter(unittest.TestCase):
if test.runner.Torrc.PASSWORD in test.runner.get_runner().get_options():
self.skipTest('password auth unsupported')
return
+ elif not READLINE_AVAILABLE:
+ self.skipTest('readline unavailable')
+ return
expected = ['250-config-file=%s' % test.runner.get_runner().get_torrc_path(), '250 OK']
self.assertEqual(expected, _run_prompt('--run', 'GETINFO config-file'))
@@ -40,6 +51,9 @@ class TestInterpreter(unittest.TestCase):
if test.runner.Torrc.PASSWORD in test.runner.get_runner().get_options():
self.skipTest('password auth unsupported')
return
+ elif not READLINE_AVAILABLE:
+ self.skipTest('readline unavailable')
+ return
expected = [
'250-config-file=%s' % test.runner.get_runner().get_torrc_path(),
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits