X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/ed91dd4de63215aa3dde1f6da8659fb35ff191d8..ed50737290662f6ef4016a7ea44da78ee1eff1e2:/tests/test_black.py diff --git a/tests/test_black.py b/tests/test_black.py index 0645525..e98f019 100644 --- a/tests/test_black.py +++ b/tests/test_black.py @@ -6,18 +6,19 @@ from functools import partial from io import BytesIO, TextIOWrapper import os from pathlib import Path +import re import sys from tempfile import TemporaryDirectory from typing import Any, List, Tuple, Iterator import unittest from unittest.mock import patch -import re from click import unstyle from click.testing import CliRunner import black + ll = 88 ff = partial(black.format_file_in_place, line_length=ll, fast=True) fs = partial(black.format_str, line_length=ll) @@ -99,6 +100,25 @@ class BlackTestCase(unittest.TestCase): black.err(str(ve)) self.assertEqual(expected, actual) + @patch("black.dump_to_file", dump_to_stderr) + def test_empty(self) -> None: + source = expected = "" + actual = fs(source) + self.assertFormatEqual(expected, actual) + black.assert_equivalent(source, actual) + black.assert_stable(source, actual, line_length=ll) + + def test_empty_ff(self) -> None: + expected = "" + tmp_file = Path(black.dump_to_file()) + try: + self.assertFalse(ff(tmp_file, write_back=black.WriteBack.YES)) + with open(tmp_file, encoding="utf8") as f: + actual = f.read() + finally: + os.unlink(tmp_file) + self.assertFormatEqual(expected, actual) + @patch("black.dump_to_file", dump_to_stderr) def test_self(self) -> None: source, expected = read_data("test_black") @@ -136,18 +156,22 @@ class BlackTestCase(unittest.TestCase): black.assert_stable(source, actual, line_length=ll) def test_piping_diff(self) -> None: + diff_header = re.compile( + rf"(STDIN|STDOUT)\t\d\d\d\d-\d\d-\d\d " + rf"\d\d:\d\d:\d\d\.\d\d\d\d\d\d \+\d\d\d\d" + ) source, _ = read_data("expression.py") expected, _ = read_data("expression.diff") hold_stdin, hold_stdout = sys.stdin, sys.stdout try: sys.stdin = TextIOWrapper(BytesIO(source.encode("utf8")), encoding="utf8") sys.stdout = TextIOWrapper(BytesIO(), encoding="utf8") - sys.stdin.buffer.name = "" # type: ignore black.format_stdin_to_stdout( line_length=ll, fast=True, write_back=black.WriteBack.DIFF ) sys.stdout.seek(0) actual = sys.stdout.read() + actual = diff_header.sub("[Deterministic header]", actual) finally: sys.stdin, sys.stdout = hold_stdin, hold_stdout actual = actual.rstrip() + "\n" # the diff output has a trailing space @@ -204,13 +228,17 @@ class BlackTestCase(unittest.TestCase): source, _ = read_data("expression.py") expected, _ = read_data("expression.diff") 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 " + rf"\d\d:\d\d:\d\d\.\d\d\d\d\d\d \+\d\d\d\d" + ) hold_stdout = sys.stdout try: sys.stdout = TextIOWrapper(BytesIO(), encoding="utf8") self.assertTrue(ff(tmp_file, write_back=black.WriteBack.DIFF)) sys.stdout.seek(0) actual = sys.stdout.read() - actual = actual.replace(str(tmp_file), "") + actual = diff_header.sub("[Deterministic header]", actual) finally: sys.stdout = hold_stdout os.unlink(tmp_file)