commit 7a09b7706105f3173748f8e5257f4152107f5cc8 Author: Damian Johnson atagar@torproject.org Date: Wed Jul 12 09:30:54 2017 -0700
test_no_orphaned_process failed if no tor binary was on the path
Oops, we forgot to pass the tor path into one of the process tests...
https://trac.torproject.org/projects/tor/ticket/22894 --- test/integ/process.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-)
diff --git a/test/integ/process.py b/test/integ/process.py index a7e2bc3..70f414c 100644 --- a/test/integ/process.py +++ b/test/integ/process.py @@ -258,28 +258,31 @@ class TestProcess(unittest.TestCase): elif 'UseBridges' not in output or 'SocksPort' not in output: raise AssertionError("'tor --list-torrc-options' didn't have options we expect")
- @test.require.command('sleep') - @patch('re.compile', Mock(side_effect = KeyboardInterrupt('nope'))) - def test_no_orphaned_process(self): + @asynchronous + def test_no_orphaned_process(tor_cmd): """ Check that when an exception arises in the middle of spawning tor that we don't leave a lingering process. """
- # We don't need to actually run tor for this test. Rather, any process will - # do the trick. Picking sleep so this'll clean itself up if our test fails. + if not stem.util.system.is_available('sleep'): + skip('(sleep unavailable)')
- mock_tor_process = subprocess.Popen(['sleep', '60']) + with patch('re.compile', Mock(side_effect = KeyboardInterrupt('nope'))): + # We don't need to actually run tor for this test. Rather, any process will + # do the trick. Picking sleep so this'll clean itself up if our test fails.
- with patch('subprocess.Popen', Mock(return_value = mock_tor_process)): - try: - stem.process.launch_tor() - self.fail("tor shoudn't have started") - except KeyboardInterrupt as exc: - if os.path.exists('/proc/%s' % mock_tor_process.pid): - self.fail('launch_tor() left a lingering tor process') + mock_tor_process = subprocess.Popen(['sleep', '60']) + + with patch('subprocess.Popen', Mock(return_value = mock_tor_process)): + try: + stem.process.launch_tor(tor_cmd) + raise AssertionError("tor shoudn't have started") + except KeyboardInterrupt as exc: + if os.path.exists('/proc/%s' % mock_tor_process.pid): + raise AssertionError('launch_tor() left a lingering tor process')
- self.assertEqual('nope', str(exc)) + assert_equal('nope', str(exc))
@asynchronous def test_torrc_arguments(tor_cmd):
tor-commits@lists.torproject.org