Skip to content

Commit

Permalink
Add test for anti-Ubuntu-crash-reporter exception-catching code. fixe…
Browse files Browse the repository at this point in the history
…s #1746

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
  • Loading branch information
David-Sarah Hopwood committed Mar 15, 2013
1 parent ea9dfb0 commit 52a583c
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions src/allmydata/test/test_cli.py
Expand Up @@ -2,10 +2,10 @@
import os.path
from twisted.trial import unittest
from cStringIO import StringIO
import urllib, re
import urllib, re, sys
import simplejson

from mock import patch
from mock import patch, Mock, call

from allmydata.util import fileutil, hashutil, base32, keyutil
from allmydata import uri
Expand Down Expand Up @@ -582,6 +582,27 @@ def test_listdir_unicode_good(self):
for file in listdir_unicode(unicode(basedir)):
self.failUnlessIn(normalize(file), filenames)

def test_exception_catcher(self):
self.basedir = "cli/exception_catcher"

runner_mock = Mock()
sys_exit_mock = Mock()
stderr = StringIO()
self.patch(sys, "argv", ["tahoe"])
self.patch(runner, "runner", runner_mock)
self.patch(sys, "exit", sys_exit_mock)
self.patch(sys, "stderr", stderr)
exc = Exception("canary")

def call_runner(args, install_node_control=True):
raise exc
runner_mock.side_effect = call_runner

runner.run()
self.failUnlessEqual(runner_mock.call_args_list, [call([], install_node_control=True)])
self.failUnlessEqual(sys_exit_mock.call_args_list, [call(1)])
self.failUnlessIn(str(exc), stderr.getvalue())


class Help(unittest.TestCase):
def test_get(self):
Expand Down

0 comments on commit 52a583c

Please sign in to comment.