X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/3500e1cda5bef73ddc7eaf79be6c67c918738936..4af87d8a43e2fd17045234d646dc59bfc8d77af4:/tests/util.py diff --git a/tests/util.py b/tests/util.py index 84e98bb..1d76681 100644 --- a/tests/util.py +++ b/tests/util.py @@ -9,7 +9,7 @@ from typing import Any, Iterator, List, Optional, Tuple import black from black.debug import DebugVisitor from black.mode import TargetVersion -from black.output import err, out +from black.output import diff, err, out THIS_DIR = Path(__file__).parent DATA_DIR = THIS_DIR / "data" @@ -47,6 +47,9 @@ def _assert_format_equal(expected: str, actual: str) -> None: except Exception as ve: err(str(ve)) + if actual != expected: + out(diff(expected, actual, "expected", "actual")) + assert actual == expected @@ -87,12 +90,21 @@ class BlackBaseTestCase(unittest.TestCase): _assert_format_equal(expected, actual) +def all_data_cases(dir_name: str, data: bool = True) -> List[str]: + base_dir = DATA_DIR if data else PROJECT_ROOT + cases_dir = base_dir / dir_name + assert cases_dir.is_dir() + return [f"{dir_name}/{case_path.stem}" for case_path in cases_dir.iterdir()] + + def read_data(name: str, data: bool = True) -> Tuple[str, str]: """read_data('test_name') -> 'input', 'output'""" if not name.endswith((".py", ".pyi", ".out", ".diff")): name += ".py" base_dir = DATA_DIR if data else PROJECT_ROOT - return read_data_from_file(base_dir / name) + case_path = base_dir / name + assert case_path.is_file(), f"{case_path} is not a file." + return read_data_from_file(case_path) def read_data_from_file(file_name: Path) -> Tuple[str, str]: