Beispiel #1
0
def test_add_long_option():
    parser = KnownOptionParser()
    parser.add_option("--foo")
    assert vars(parser) == {
        "shortopts": {},
        "longopts": {
            "foo": OptionDetails("foo", False),
        },
    }
Beispiel #2
0
def test_add_short_option():
    parser = KnownOptionParser()
    parser.add_option("-x")
    assert vars(parser) == {
        "shortopts": {
            "x": OptionDetails("x", False),
        },
        "longopts": {},
    }
Beispiel #3
0
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),
        },
    }
Beispiel #4
0
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}"
Beispiel #5
0
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"
Beispiel #6
0
def test_add_option_no_args():
    parser = KnownOptionParser()
    with pytest.raises(ValueError) as excinfo:
        parser.add_option()
    assert str(excinfo.value) == "No arguments supplied"
Beispiel #7
0
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"
Beispiel #8
0
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"
Beispiel #9
0
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():