X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/467efe15562e3bad88b1eb3bc11f76b5b9a68816..1c6b3a3a6fbc50b651d4ac34247903041d3f6329:/tests/test_format.py diff --git a/tests/test_format.py b/tests/test_format.py index 649c157..30099aa 100644 --- a/tests/test_format.py +++ b/tests/test_format.py @@ -70,6 +70,13 @@ EXPERIMENTAL_STRING_PROCESSING_CASES = [ "percent_precedence", ] +PY310_CASES = [ + "pattern_matching_simple", + "pattern_matching_complex", + "pattern_matching_extras", + "pattern_matching_style", + "parenthesized_context_managers", +] SOURCES = [ "src/black/__init__.py", @@ -187,6 +194,31 @@ def test_pep_570() -> None: assert_format(source, expected, minimum_version=(3, 8)) +@pytest.mark.parametrize("filename", PY310_CASES) +def test_python_310(filename: str) -> None: + source, expected = read_data(filename) + mode = black.Mode(target_versions={black.TargetVersion.PY310}) + assert_format(source, expected, mode, minimum_version=(3, 10)) + + +def test_patma_invalid() -> None: + source, expected = read_data("pattern_matching_invalid") + mode = black.Mode(target_versions={black.TargetVersion.PY310}) + with pytest.raises(black.parsing.InvalidInput) as exc_info: + assert_format(source, expected, mode, minimum_version=(3, 10)) + + exc_info.match("Cannot parse: 10:11") + + +def test_patma_hint() -> None: + source, expected = read_data("pattern_matching_simple") + mode = black.Mode(target_versions={black.TargetVersion.PY39}) + with pytest.raises(black.parsing.InvalidInput) as exc_info: + assert_format(source, expected, mode, minimum_version=(3, 10)) + + exc_info.match(black.parsing.PY310_HINT) + + def test_docstring_no_string_normalization() -> None: """Like test_docstring but with string normalization off.""" source, expected = read_data("docstring_no_string_normalization")