Exemple #1
0
    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,))
Exemple #2
0
    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())