Add ProcessPoolAction, update CAP to look only at keywords correctly
This commit is contained in:
@ -0,0 +1,49 @@
|
||||
import pytest
|
||||
|
||||
from falyx.exceptions import CommandArgumentError
|
||||
from falyx.parsers import CommandArgumentParser
|
||||
|
||||
|
||||
def test_str():
|
||||
"""Test the string representation of CommandArgumentParser."""
|
||||
parser = CommandArgumentParser()
|
||||
assert (
|
||||
str(parser)
|
||||
== "CommandArgumentParser(args=1, flags=2, keywords=2, positional=0, required=0)"
|
||||
)
|
||||
|
||||
parser.add_argument("test", action="store", help="Test argument")
|
||||
assert (
|
||||
str(parser)
|
||||
== "CommandArgumentParser(args=2, flags=3, keywords=2, positional=1, required=1)"
|
||||
)
|
||||
|
||||
parser.add_argument("-o", "--optional", action="store", help="Optional argument")
|
||||
assert (
|
||||
str(parser)
|
||||
== "CommandArgumentParser(args=3, flags=5, keywords=4, positional=1, required=1)"
|
||||
)
|
||||
|
||||
parser.add_argument("--flag", action="store", help="Flag argument", required=True)
|
||||
assert (
|
||||
str(parser)
|
||||
== "CommandArgumentParser(args=4, flags=6, keywords=5, positional=1, required=2)"
|
||||
)
|
||||
assert (
|
||||
repr(parser)
|
||||
== "CommandArgumentParser(args=4, flags=6, keywords=5, positional=1, required=2)"
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_positional_text_with_choices():
|
||||
parser = CommandArgumentParser()
|
||||
parser.add_argument("path", choices=["a", "b"])
|
||||
args = await parser.parse_args(["a"])
|
||||
assert args["path"] == "a"
|
||||
|
||||
with pytest.raises(CommandArgumentError):
|
||||
await parser.parse_args(["c"])
|
||||
|
||||
with pytest.raises(CommandArgumentError):
|
||||
await parser.parse_args([])
|
||||
|
Reference in New Issue
Block a user