def testBufferCatchFailfast(self): program = self.program for arg, attr in (('buffer', 'buffer'), ('failfast', 'failfast'), ('catch', 'catchbreak')): if attr == 'catch' and not hasInstallHandler: continue setattr(program, attr, None) program.parseArgs([None]) self.assertIs(getattr(program, attr), False) false = [] setattr(program, attr, false) program.parseArgs([None]) self.assertIs(getattr(program, attr), false) true = [42] setattr(program, attr, true) program.parseArgs([None]) self.assertIs(getattr(program, attr), true) short_opt = '-%s' % arg[0] long_opt = '--%s' % arg for opt in short_opt, long_opt: setattr(program, attr, None) program.parseArgs([None, opt]) self.assertIs(getattr(program, attr), True) setattr(program, attr, False) with support.captured_stderr() as stderr: with self.assertRaises(SystemExit) as cm: program.parseArgs([None, opt]) if type(cm.exception) is int: # Python 2.6. WAT. self.assertEqual(cm.exception, 2) else: self.assertEqual(cm.exception.args, (2,)) setattr(program, attr, True) with support.captured_stderr() as stderr: with self.assertRaises(SystemExit) as cm: program.parseArgs([None, opt]) if type(cm.exception) is int: # Python 2.6. WAT. self.assertEqual(cm.exception, 2) else: self.assertEqual(cm.exception.args, (2,))
def test_command_line_handling_do_discovery_too_many_arguments(self): program = TestableTestProgram() program.testLoader = None with support.captured_stderr() as stderr: with self.assertRaises(SystemExit) as cm: # too many args program._do_discovery(['one', 'two', 'three', 'four']) if type(cm.exception) is int: # Python 2.6. WAT. self.assertEqual(cm.exception, 2) else: self.assertEqual(cm.exception.args, (2,)) self.assertIn('usage:', stderr.getvalue())