def test_add_long_option(): parser = KnownOptionParser() parser.add_option("--foo") assert vars(parser) == { "shortopts": {}, "longopts": { "foo": OptionDetails("foo", False), }, }
def test_add_short_option(): parser = KnownOptionParser() parser.add_option("-x") assert vars(parser) == { "shortopts": { "x": OptionDetails("x", False), }, "longopts": {}, }
def test_add_option_named(): parser = KnownOptionParser() parser.add_option("-x", "--foo", "bar") assert vars(parser) == { "shortopts": { "x": OptionDetails("bar", False), }, "longopts": { "foo": OptionDetails("bar", False), }, }
def test_add_invalid_option(opt): parser = KnownOptionParser() with pytest.raises(ValueError) as excinfo: parser.add_option(opt) assert str(excinfo.value) == f"Invalid option: {opt!r}"
def test_add_option_no_opts(): parser = KnownOptionParser() with pytest.raises(ValueError) as excinfo: parser.add_option("foo") assert str(excinfo.value) == "No options supplied"
def test_add_option_no_args(): parser = KnownOptionParser() with pytest.raises(ValueError) as excinfo: parser.add_option() assert str(excinfo.value) == "No arguments supplied"
def test_add_option_extra_names(): parser = KnownOptionParser() with pytest.raises(ValueError) as excinfo: parser.add_option("-x", "--foo", "bar", "baz") assert str(excinfo.value) == "More than one field name specified"
def test_register_long_opt_twice(): parser = KnownOptionParser() parser.add_option("-x", "--foo") with pytest.raises(ValueError) as excinfo: parser.add_option("--foo") assert str(excinfo.value) == "--foo option registered more than once"
import pytest from rst2json.knownopts import KnownOptionParser, OptionDetails, UsageError plain_parser = KnownOptionParser() plain_parser.add_option("-f", "--format") plain_parser.add_flag("-V", "--version") fancy_parser = KnownOptionParser() fancy_parser.add_option("-f", "--format", "style") fancy_parser.add_flag("-V", "--version", "about") def test_init(): parser = KnownOptionParser() assert vars(parser) == {"shortopts": {}, "longopts": {}} def test_add_option(): parser = KnownOptionParser() parser.add_option("-x", "--foo") assert vars(parser) == { "shortopts": { "x": OptionDetails("foo", False), }, "longopts": { "foo": OptionDetails("foo", False), }, } def test_add_option_named():