class Test_catches_help(object): def setup(self): self.parser = Parse(['--foo']) self.parser.writer = StringIO() def test_does_not_catch_help_if_catch_help_is_not_defined(self): self.parser.arguments = ['--help', '-h', 'help'] assert self.parser.catches_help(force=False) is None def test_does_not_catch_version_if_version_is_not_defined(self): self.parser.arguments = ['--version', 'version'] assert self.parser.catches_version(force=False) is None def test_catches_only_help_if_it_sees_it_as_an_argument(self): self.parser.arguments = ['foo', 'bar'] self.parser.catch_help = 'this is the help menu' assert self.parser.catches_help() == False def test_force_catch_version_does_nothing_if_not_defined(self): self.parser.arguments = ['foo', 'bar'] assert self.parser.catches_version() == None def test_force_catch_help_does_nothing_if_not_defined(self): self.parser.arguments = ['foo', 'bar'] assert self.parser.catches_help() == None def test_catches_a_single_dash_h(self): self.parser.arguments = ['-h'] assert self.parser.check_help is True self.parser.catch_help = 'this is the help menu' with raises(SystemExit): self.parser.catches_help() assert self.parser.writer.getvalue() == 'this is the help menu\n' def test_catches_double_dash_h(self): self.parser.arguments = ['--h'] self.parser.catch_help = 'this is the help menu' with raises(SystemExit): self.parser.catches_help() assert self.parser.writer.getvalue() == 'this is the help menu\n' def test_catches_double_dash_help(self): self.parser.arguments = ['--help'] self.parser.catch_help = 'this is the help menu' with raises(SystemExit): self.parser.catches_help() assert self.parser.writer.getvalue() == 'this is the help menu\n'
class Test_catches_version(object): def setup(self): self.parser = Parse(['/usr/bin/foo', '--foo']) self.parser.writer = StringIO() def test_catches_only_version_if_it_sees_it_as_an_argument(self): self.parser.arguments = ['foo', 'bar'] self.parser.catch_version = "version 3" assert self.parser.catches_version() == False def test_catches_double_dash_version(self): self.parser.arguments = ['foo', '--version'] self.parser.catch_version = "version 3" with raises(SystemExit): self.parser.catches_version() assert self.parser.writer.getvalue() == 'version 3\n' def test_catches_version_if_it_sees_it_as_an_argument(self): self.parser.arguments = ['foo', 'version'] self.parser.catch_version = "version 3" with raises(SystemExit): self.parser.catches_version() assert self.parser.writer.getvalue() == 'version 3\n'