From df50f6c30c696d4f9121e6cd8e885a05dce39360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mark=C3=A9ta=20Cal=C3=A1bkov=C3=A1?= Date: Fri, 7 Feb 2025 17:05:43 +0100 Subject: [PATCH 1/4] mix_stderr parameter was removed from click 8.2.0 --- tests/test_black.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) Index: black-25.1.0/tests/test_black.py =================================================================== --- black-25.1.0.orig/tests/test_black.py 2020-02-02 01:00:00.000000000 +0100 +++ black-25.1.0/tests/test_black.py 2025-06-18 22:23:10.051582946 +0200 @@ -14,6 +14,7 @@ from concurrent.futures import ThreadPoolExecutor from contextlib import contextmanager, redirect_stderr from dataclasses import fields, replace +from importlib.metadata import version as imp_version from io import BytesIO from pathlib import Path, WindowsPath from platform import system @@ -25,6 +26,7 @@ import pytest from click import unstyle from click.testing import CliRunner +from packaging.version import Version from pathspec import PathSpec import black @@ -114,7 +116,10 @@ """Make sure STDOUT and STDERR are kept separate when testing Black via its CLI.""" def __init__(self) -> None: - super().__init__(mix_stderr=False) + if Version(imp_version("click")) >= Version("8.2.0"): + super().__init__() + else: + super().__init__(mix_stderr=False) def invokeBlack( @@ -187,10 +192,10 @@ input=BytesIO(source.encode("utf-8")), ) self.assertEqual(result.exit_code, 0) - self.assertFormatEqual(expected, result.output) - if source != result.output: - black.assert_equivalent(source, result.output) - black.assert_stable(source, result.output, DEFAULT_MODE) + self.assertFormatEqual(expected, result.stdout) + if source != result.stdout: + black.assert_equivalent(source, result.stdout) + black.assert_stable(source, result.stdout, DEFAULT_MODE) def test_piping_diff(self) -> None: diff_header = re.compile( @@ -210,7 +215,7 @@ black.main, args, input=BytesIO(source.encode("utf-8")) ) self.assertEqual(result.exit_code, 0) - actual = diff_header.sub(DETERMINISTIC_HEADER, result.output) + actual = diff_header.sub(DETERMINISTIC_HEADER, result.stdout) actual = actual.rstrip() + "\n" # the diff output has a trailing space self.assertEqual(expected, actual) @@ -295,7 +300,7 @@ self.assertEqual(result.exit_code, 0) finally: os.unlink(tmp_file) - actual = result.output + actual = result.stdout actual = diff_header.sub(DETERMINISTIC_HEADER, actual) if expected != actual: dump = black.dump_to_file(actual) @@ -404,7 +409,7 @@ self.assertEqual(result.exit_code, 0) finally: os.unlink(tmp_file) - actual = result.output + actual = result.stdout actual = diff_header.sub(DETERMINISTIC_HEADER, actual) actual = actual.rstrip() + "\n" # the diff output has a trailing space if expected != actual: @@ -1826,7 +1831,7 @@ self.assertEqual(result.exit_code, 0) finally: os.unlink(tmp_file) - actual = result.output + actual = result.stdout actual = diff_header.sub(DETERMINISTIC_HEADER, actual) self.assertEqual(actual, expected) @@ -1836,7 +1841,7 @@ ) -> None: """Helper method to test the value and exit code of a click Result.""" assert ( - result.output == expected_value + result.stdout == expected_value ), "The output did not match the expected value." assert result.exit_code == expected_exit_code, "The exit code is incorrect." @@ -1913,7 +1918,8 @@ args = ["--safe", "--code", code] result = CliRunner().invoke(black.main, args) - self.compare_results(result, error_msg, 123) + assert error_msg == result.output + assert result.exit_code == 123 def test_code_option_fast(self) -> None: """Test that the code option ignores errors when the sanity checks fail."""