Skip to content

Commit

Permalink
Merge 9e5b4ec into 8ed3e3d
Browse files Browse the repository at this point in the history
  • Loading branch information
saroad2 committed Apr 25, 2022
2 parents 8ed3e3d + 9e5b4ec commit bad2c3a
Show file tree
Hide file tree
Showing 49 changed files with 40 additions and 68 deletions.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
26 changes: 13 additions & 13 deletions tests/test_black.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,8 +179,8 @@ def test_piping_diff(self) -> None:
r"(STDIN|STDOUT)\t\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\.\d\d\d\d\d\d "
r"\+\d\d\d\d"
)
source, _ = read_data("expression.py")
expected, _ = read_data("expression.diff")
source, _ = read_data("expression.py", cases_dir="simple_cases")
expected, _ = read_data("expression.diff", cases_dir="simple_cases")
args = [
"-",
"--fast",
Expand All @@ -197,7 +197,7 @@ def test_piping_diff(self) -> None:
self.assertEqual(expected, actual)

def test_piping_diff_with_color(self) -> None:
source, _ = read_data("expression.py")
source, _ = read_data("expression.py", cases_dir="simple_cases")
args = [
"-",
"--fast",
Expand Down Expand Up @@ -241,7 +241,7 @@ def test_pep_572_version_detection(self) -> None:
self.assertIn(black.TargetVersion.PY38, versions)

def test_expression_ff(self) -> None:
source, expected = read_data("expression")
source, expected = read_data("expression", cases_dir="simple_cases")
tmp_file = Path(black.dump_to_file(source))
try:
self.assertTrue(ff(tmp_file, write_back=black.WriteBack.YES))
Expand All @@ -255,8 +255,8 @@ def test_expression_ff(self) -> None:
black.assert_stable(source, actual, DEFAULT_MODE)

def test_expression_diff(self) -> None:
source, _ = read_data("expression.py")
expected, _ = read_data("expression.diff")
source, _ = read_data("expression.py", cases_dir="simple_cases")
expected, _ = read_data("expression.diff", cases_dir="simple_cases")
tmp_file = Path(black.dump_to_file(source))
diff_header = re.compile(
rf"{re.escape(str(tmp_file))}\t\d\d\d\d-\d\d-\d\d "
Expand All @@ -281,8 +281,8 @@ def test_expression_diff(self) -> None:
self.assertEqual(expected, actual, msg)

def test_expression_diff_with_color(self) -> None:
source, _ = read_data("expression.py")
expected, _ = read_data("expression.diff")
source, _ = read_data("expression.py", cases_dir="simple_cases")
expected, _ = read_data("expression.diff", cases_dir="simple_cases")
tmp_file = Path(black.dump_to_file(source))
try:
result = BlackRunner().invoke(
Expand Down Expand Up @@ -320,7 +320,7 @@ def test_string_quotes(self) -> None:
black.assert_stable(source, not_normalized, mode=mode)

def test_skip_magic_trailing_comma(self) -> None:
source, _ = read_data("expression.py")
source, _ = read_data("expression.py", cases_dir="simple_cases")
expected, _ = read_data("expression_skip_magic_trailing_comma.diff")
tmp_file = Path(black.dump_to_file(source))
diff_header = re.compile(
Expand Down Expand Up @@ -755,7 +755,7 @@ def test_get_features_used(self) -> None:
self.assertEqual(black.get_features_used(node), {Feature.NUMERIC_UNDERSCORES})
node = black.lib2to3_parse("123456\n")
self.assertEqual(black.get_features_used(node), set())
source, expected = read_data("function")
source, expected = read_data("function", cases_dir="simple_cases")
node = black.lib2to3_parse(source)
expected_features = {
Feature.TRAILING_COMMA_IN_CALL,
Expand All @@ -765,7 +765,7 @@ def test_get_features_used(self) -> None:
self.assertEqual(black.get_features_used(node), expected_features)
node = black.lib2to3_parse(expected)
self.assertEqual(black.get_features_used(node), expected_features)
source, expected = read_data("expression")
source, expected = read_data("expression", cases_dir="simple_cases")
node = black.lib2to3_parse(source)
self.assertEqual(black.get_features_used(node), set())
node = black.lib2to3_parse(expected)
Expand Down Expand Up @@ -939,7 +939,7 @@ def test_check_diff_use_together(self) -> None:
src1 = (THIS_DIR / "data" / "string_quotes.py").resolve()
self.invokeBlack([str(src1), "--diff", "--check"], exit_code=1)
# Files which will not be reformatted.
src2 = (THIS_DIR / "data" / "composition.py").resolve()
src2 = (THIS_DIR / "data" / "simple_cases" / "composition.py").resolve()
self.invokeBlack([str(src2), "--diff", "--check"])
# Multi file command.
self.invokeBlack([str(src1), str(src2), "--diff", "--check"], exit_code=1)
Expand Down Expand Up @@ -1168,7 +1168,7 @@ def test_reformat_one_with_stdin_and_existing_path(self) -> None:
report = MagicMock()
# Even with an existing file, since we are forcing stdin, black
# should output to stdout and not modify the file inplace
p = Path(str(THIS_DIR / "data/collections.py"))
p = Path(str(THIS_DIR / "data" / "simple_cases" / "collections.py"))
# Make sure is_file actually returns True
self.assertTrue(p.is_file())
path = Path(f"__BLACK_STDIN_FILENAME__{p}")
Expand Down
65 changes: 12 additions & 53 deletions tests/test_format.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from dataclasses import replace
from typing import Any, Iterator, List
from typing import Any, Iterator, List, Optional
from unittest.mock import patch

import pytest
Expand All @@ -12,56 +12,9 @@
assert_format,
dump_to_stderr,
read_data,
all_data_cases,
)

SIMPLE_CASES: List[str] = [
"attribute_access_on_number_literals",
"beginning_backslash",
"bracketmatch",
"class_blank_parentheses",
"class_methods_new_line",
"collections",
"comments",
"comments2",
"comments3",
"comments4",
"comments5",
"comments6",
"comments_non_breaking_space",
"comment_after_escaped_newline",
"composition",
"composition_no_trailing_comma",
"docstring",
"empty_lines",
"expression",
"fmtonoff",
"fmtonoff2",
"fmtonoff3",
"fmtonoff4",
"fmtskip",
"fmtskip2",
"fmtskip3",
"fmtskip4",
"fmtskip5",
"fmtskip6",
"fmtskip7",
"fstring",
"function",
"function2",
"function_trailing_comma",
"import_spacing",
"power_op_spacing",
"remove_parens",
"slices",
"string_prefixes",
"torture",
"trailing_comma_optional_parens1",
"trailing_comma_optional_parens2",
"trailing_comma_optional_parens3",
"tricky_unicode_symbols",
"tupleassign",
]

PY310_CASES: List[str] = [
"starred_for_target",
"pattern_matching_simple",
Expand Down Expand Up @@ -141,14 +94,20 @@ def patch_dump_to_file(request: Any) -> Iterator[None]:
yield


def check_file(filename: str, mode: black.Mode, *, data: bool = True) -> None:
source, expected = read_data(filename, data=data)
def check_file(
filename: str,
mode: black.Mode,
*,
data: bool = True,
cases_dir: Optional[str] = None,
) -> None:
source, expected = read_data(filename, data=data, cases_dir=cases_dir)
assert_format(source, expected, mode, fast=False)


@pytest.mark.parametrize("filename", SIMPLE_CASES)
@pytest.mark.parametrize("filename", all_data_cases("simple_cases"))
def test_simple_format(filename: str) -> None:
check_file(filename, DEFAULT_MODE)
check_file(filename, DEFAULT_MODE, cases_dir="simple_cases")


@pytest.mark.parametrize("filename", PREVIEW_CASES)
Expand Down
17 changes: 15 additions & 2 deletions tests/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,12 +90,25 @@ def assertFormatEqual(self, expected: str, actual: str) -> None:
_assert_format_equal(expected, actual)


def read_data(name: str, data: bool = True) -> Tuple[str, str]:
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 [case_path.stem for case_path in cases_dir.iterdir()]


def read_data(
name: str, data: bool = True, cases_dir: Optional[str] = None
) -> 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)
if cases_dir is not None:
base_dir /= cases_dir
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]:
Expand Down

0 comments on commit bad2c3a

Please sign in to comment.