]>
git.madduck.net Git - etc/vim.git/blobdiff - tests/test_black.py
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
fs = partial(black.format_str, mode=black.FileMode())
THIS_FILE = Path(__file__)
THIS_DIR = THIS_FILE.parent
fs = partial(black.format_str, mode=black.FileMode())
THIS_FILE = Path(__file__)
THIS_DIR = THIS_FILE.parent
+PROJECT_ROOT = THIS_DIR.parent
DETERMINISTIC_HEADER = "[Deterministic header]"
EMPTY_LINE = "# EMPTY LINE WITH WHITESPACE" + " (this comment will be removed)"
PY36_ARGS = [
DETERMINISTIC_HEADER = "[Deterministic header]"
EMPTY_LINE = "# EMPTY LINE WITH WHITESPACE" + " (this comment will be removed)"
PY36_ARGS = [
name += ".py"
_input: List[str] = []
_output: List[str] = []
name += ".py"
_input: List[str] = []
_output: List[str] = []
- base_dir = THIS_DIR / "data" if data else THIS_DIR
+ base_dir = THIS_DIR / "data" if data else PROJECT_ROOT
with open(base_dir / name, "r", encoding="utf8") as test:
lines = test.readlines()
result = _input
with open(base_dir / name, "r", encoding="utf8") as test:
lines = test.readlines()
result = _input
-def event_loop(close: bool ) -> Iterator[None]:
+def event_loop() -> Iterator[None]:
policy = asyncio.get_event_loop_policy()
loop = policy.new_event_loop()
asyncio.set_event_loop(loop)
policy = asyncio.get_event_loop_policy()
loop = policy.new_event_loop()
asyncio.set_event_loop(loop)
- if close:
- loop.close()
self.checkSourceFile("tests/test_black.py")
def test_black(self) -> None:
self.checkSourceFile("tests/test_black.py")
def test_black(self) -> None:
- self.checkSourceFile("black .py")
+ self.checkSourceFile("src/black/__init__ .py")
def test_pygram(self) -> None:
def test_pygram(self) -> None:
- self.checkSourceFile("blib2to3/pygram.py")
+ self.checkSourceFile("src/ blib2to3/pygram.py")
def test_pytree(self) -> None:
def test_pytree(self) -> None:
- self.checkSourceFile("blib2to3/pytree.py")
+ self.checkSourceFile("src/ blib2to3/pytree.py")
def test_conv(self) -> None:
def test_conv(self) -> None:
- self.checkSourceFile("blib2to3/pgen2/conv.py")
+ self.checkSourceFile("src/ blib2to3/pgen2/conv.py")
def test_driver(self) -> None:
def test_driver(self) -> None:
- self.checkSourceFile("blib2to3/pgen2/driver.py")
+ self.checkSourceFile("src/ blib2to3/pgen2/driver.py")
def test_grammar(self) -> None:
def test_grammar(self) -> None:
- self.checkSourceFile("blib2to3/pgen2/grammar.py")
+ self.checkSourceFile("src/ blib2to3/pgen2/grammar.py")
def test_literals(self) -> None:
def test_literals(self) -> None:
- self.checkSourceFile("blib2to3/pgen2/literals.py")
+ self.checkSourceFile("src/ blib2to3/pgen2/literals.py")
def test_parse(self) -> None:
def test_parse(self) -> None:
- self.checkSourceFile("blib2to3/pgen2/parse.py")
+ self.checkSourceFile("src/ blib2to3/pgen2/parse.py")
def test_pgen(self) -> None:
def test_pgen(self) -> None:
- self.checkSourceFile("blib2to3/pgen2/pgen.py")
+ self.checkSourceFile("src/ blib2to3/pgen2/pgen.py")
def test_tokenize(self) -> None:
def test_tokenize(self) -> None:
- self.checkSourceFile("blib2to3/pgen2/tokenize.py")
+ self.checkSourceFile("src/ blib2to3/pgen2/tokenize.py")
def test_token(self) -> None:
def test_token(self) -> None:
- self.checkSourceFile("blib2to3/pgen2/token.py")
+ self.checkSourceFile("src/ blib2to3/pgen2/token.py")
def test_setup(self) -> None:
self.checkSourceFile("setup.py")
def test_piping(self) -> None:
def test_setup(self) -> None:
self.checkSourceFile("setup.py")
def test_piping(self) -> None:
- source, expected = read_data("../black ", data=False)
+ source, expected = read_data("src/black/__init__ ", data=False)
result = BlackRunner().invoke(
black.main,
["-", "--fast", f"--line-length={black.DEFAULT_LINE_LENGTH}"],
result = BlackRunner().invoke(
black.main,
["-", "--fast", f"--line-length={black.DEFAULT_LINE_LENGTH}"],
with src.open("r") as fobj:
self.assertEqual(fobj.read(), "print('hello')")
with src.open("r") as fobj:
self.assertEqual(fobj.read(), "print('hello')")
- @event_loop(close=False )
def test_cache_multiple_files(self) -> None:
mode = black.FileMode()
with cache_dir() as workspace, patch(
def test_cache_multiple_files(self) -> None:
mode = black.FileMode()
with cache_dir() as workspace, patch(
black.write_cache({}, [], mode)
self.assertTrue(workspace.exists())
black.write_cache({}, [], mode)
self.assertTrue(workspace.exists())
- @event_loop(close=False )
def test_failed_formatting_does_not_get_cached(self) -> None:
mode = black.FileMode()
with cache_dir() as workspace, patch(
def test_failed_formatting_does_not_get_cached(self) -> None:
mode = black.FileMode()
with cache_dir() as workspace, patch(
mock.side_effect = OSError
black.write_cache({}, [], mode)
mock.side_effect = OSError
black.write_cache({}, [], mode)
- @patch("black.ProcessPoolExecutor", autospec=True)
- def test_works_in_mono_process_only_environment(self, executor: MagicMock) -> None:
- self.skipTest("this test fails when run with the rest of the suite")
- executor.side_effect = OSError()
+ @event_loop()
+ @patch("black.ProcessPoolExecutor", MagicMock(side_effect=OSError))
+ def test_works_in_mono_process_only_environment(self) -> None:
with cache_dir() as workspace:
for f in [
(workspace / "one.py").resolve(),
(workspace / "two.py").resolve(),
]:
with cache_dir() as workspace:
for f in [
(workspace / "one.py").resolve(),
(workspace / "two.py").resolve(),
]:
- f.write_text("print('hello')" )
+ f.write_text('print("hello")\n' )
self.invokeBlack([str(workspace)])
self.invokeBlack([str(workspace)])
- @event_loop(close=False )
def test_check_diff_use_together(self) -> None:
with cache_dir():
# Files which will be reformatted.
def test_check_diff_use_together(self) -> None:
with cache_dir():
# Files which will be reformatted.
self.assertNotIn(path, normal_cache)
self.assertEqual(actual, expected)
self.assertNotIn(path, normal_cache)
self.assertEqual(actual, expected)
- @event_loop(close=False )
def test_multi_file_force_pyi(self) -> None:
reg_mode = black.FileMode()
pyi_mode = black.FileMode(is_pyi=True)
def test_multi_file_force_pyi(self) -> None:
reg_mode = black.FileMode()
pyi_mode = black.FileMode(is_pyi=True)
self.assertNotIn(path, normal_cache)
self.assertEqual(actual, expected)
self.assertNotIn(path, normal_cache)
self.assertEqual(actual, expected)
- @event_loop(close=False )
def test_multi_file_force_py36(self) -> None:
reg_mode = black.FileMode()
py36_mode = black.FileMode(target_versions=black.PY36_VERSIONS)
def test_multi_file_force_py36(self) -> None:
reg_mode = black.FileMode()
py36_mode = black.FileMode(target_versions=black.PY36_VERSIONS)
def test_symlink_out_of_root_directory(self) -> None:
path = MagicMock()
def test_symlink_out_of_root_directory(self) -> None:
path = MagicMock()
+ root = THIS_DIR.resolve()
child = MagicMock()
include = re.compile(black.DEFAULT_INCLUDES)
exclude = re.compile(black.DEFAULT_EXCLUDES)
child = MagicMock()
include = re.compile(black.DEFAULT_INCLUDES)
exclude = re.compile(black.DEFAULT_EXCLUDES)