def test_positional_error(self): with captured_output() as (out, err): with self.assertRaises(SystemExit) as raised: args = parse_hello_world_args( 'too many positional arguments'.split()) self.assertGreater(raised.exception.code, 0) self.assertRegex(err.getvalue(), 'unrecognized arguments')
def test_version(self): with captured_output() as (out, err): with self.assertRaises(SystemExit): args = parse_hello_world_args(['--version']) self.assertRegex(out.getvalue(), '\d+\.\d+\.\d+')
def test_verbose(self): args = parse_hello_world_args(['-v']) self.assertIs(args.verbose, True)
def test_all(self): args = parse_hello_world_args('-v -p ? -g Bonjour Monde'.split()) self.assertIs(args.verbose, True) self.assertEqual(args.greeting, 'Bonjour') self.assertEqual(args.target, 'Monde') self.assertEqual(args.punctuation, '?')
def test_defaults(self): args = parse_hello_world_args([]) self.assertIs(args.verbose, False) self.assertEqual(args.greeting, 'Hello') self.assertEqual(args.target, 'World') self.assertEqual(args.punctuation, '!')