def test_primitive(value: str, prefix: str, suffix: str,
                   expected: Any) -> None:
    ret = OverridesParser.parse_rule(prefix + value + suffix, "primitive")
    if isinstance(ret, QuotedString):
        assert value == ret.with_quotes()

    assert eq(ret, expected)
def test_override_parsing(
    prefix: str,
    value: str,
    override_type: OverrideType,
    expected_key: str,
    expected_value: Any,
    expected_value_type: ValueType,
) -> None:
    line = prefix + value
    ret = OverridesParser.parse_rule(line, "override")
    expected = Override(
        input_line=line,
        type=override_type,
        key_or_group=expected_key,
        _value=expected_value,
        value_type=expected_value_type,
    )
    assert ret == expected
def test_value(value: str, expected: Any) -> None:
    ret = OverridesParser.parse_rule(value, "value")
    assert ret == expected
def test_override_value_method(override: str, expected: str) -> None:
    ret = OverridesParser.parse_rule(override, "override")
    assert ret.value() == expected
def test_override_get_value_element_method(override: str, expected: str,
                                           space_after_sep: bool) -> None:
    ret = OverridesParser.parse_rule(override, "override")
    assert ret.get_value_element(space_after_sep=space_after_sep) == expected
def test_get_key_element(override: str, expected: str) -> None:
    ret = OverridesParser.parse_rule(override, "override")
    assert ret.get_key_element() == expected
def test_override_del(value: str, expected: Any) -> None:
    expected.input_line = value
    ret = OverridesParser.parse_rule(value, "override")
    assert ret == expected
def test_element(value: str, expected: Any) -> None:
    ret = OverridesParser.parse_rule(value, "element")
    assert eq(ret, expected)
def test_key_rename(value: str, expected: bool) -> None:
    ret = OverridesParser.parse_rule(value, "override")
    assert ret.is_package_rename() == expected
def test_package_or_group(value: str, expected: Any) -> None:
    ret = OverridesParser.parse_rule(value, "packageOrGroup")
    assert ret == expected
def test_parse_errors(rule: str, value: str, expected: Any) -> None:
    with expected:
        OverridesParser.parse_rule(value, rule)
def test_choice_sweep_parsing(value: str, expected: Any) -> None:
    ret = OverridesParser.parse_rule(value, "choiceSweep")
    assert ret == expected
def test_id_with_ws(value: str, prefix: str, suffix: str) -> None:
    ret = OverridesParser.parse_rule(prefix + value + suffix, "id_with_ws")
    assert ret == value