X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/3500e1cda5bef73ddc7eaf79be6c67c918738936..3083f4470bba6838d0ad59e9748f45a7621623b5:/tests/test_format.py?ds=sidebyside diff --git a/tests/test_format.py b/tests/test_format.py index a659382..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", @@ -93,6 +100,8 @@ SOURCES = [ "src/black/strings.py", "src/black/trans.py", "src/blackd/__init__.py", + "src/black_primer/cli.py", + "src/black_primer/lib.py", "src/blib2to3/pygram.py", "src/blib2to3/pytree.py", "src/blib2to3/pgen2/conv.py", @@ -185,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")