diff --git a/tests/utils/test_parser.py b/tests/utils/test_parser.py index 50179c7..604ac9a 100644 --- a/tests/utils/test_parser.py +++ b/tests/utils/test_parser.py @@ -13,6 +13,7 @@ def parser() -> Generator[Parser, None, None]: 'varst=variable to reStructuredText', 'version=0.2.0', 'release=v0.2.0', + 'url=https://example.com?query=new-value', ]) yield parser @@ -22,6 +23,7 @@ def test_parse_sub_pairs(parser: Parser): 'varst': 'variable to reStructuredText', 'version': '0.2.0', 'release': 'v0.2.0', + 'url': 'https://example.com?query=new-value', } @@ -46,17 +48,3 @@ def test_parse_one_element(parser: Parser): parser.parse(['key=']) with argparse_error(): parser.parse(['=value']) - - -def test_parse_more_than_two_element(parser: Parser): - with argparse_error(): - parser.parse(['key=value=else']) - - -def test_parse_many_equals(parser: Parser): - with argparse_error(): - parser.parse(['key==value']) - with argparse_error(): - parser.parse(['key===value']) - with argparse_error(): - parser.parse(['key====value']) diff --git a/varst/utils/parser.py b/varst/utils/parser.py index 7933d73..41249c0 100644 --- a/varst/utils/parser.py +++ b/varst/utils/parser.py @@ -70,7 +70,7 @@ def _pattern_type(arg_value: str, pat=_VARIABLE_PATTERN) -> str: argparse.ArgumentTypeError """ - if not pat.fullmatch(arg_value): + if not pat.match(arg_value): raise argparse.ArgumentTypeError(f"invalid pattern: {pat.pattern}") return arg_value @@ -107,7 +107,7 @@ def _parse_kv(variables: List[str]) -> Dict[str, str]: result: Dict[str, str] = {} for variable in variables: - kv = variable.split("=") + kv = variable.split("=", 1) result[kv.pop()] = kv.pop() return result