Backported CliRunner fix from e3eb356a

Removed obsolete mix_stderr=False arguments from CliRunner() calls
which are not supported in Click 8.3.0.
This commit is contained in:
Simon Willison 2025-11-04 17:36:31 -08:00
commit ef8e75db78
3 changed files with 11 additions and 8 deletions

View file

@ -193,7 +193,7 @@ def test_version():
@pytest.mark.parametrize("invalid_port", ["-1", "0.5", "dog", "65536"])
def test_serve_invalid_ports(invalid_port):
runner = CliRunner(mix_stderr=False)
runner = CliRunner()
result = runner.invoke(cli, ["--port", invalid_port])
assert result.exit_code == 2
assert "Invalid value for '-p'" in result.stderr
@ -209,7 +209,7 @@ def test_setting():
def test_setting_type_validation():
runner = CliRunner(mix_stderr=False)
runner = CliRunner()
result = runner.invoke(cli, ["--setting", "default_page_size", "dog"])
assert result.exit_code == 2
assert '"default_page_size" should be an integer' in result.stderr
@ -239,17 +239,20 @@ def test_setting_default_allow_sql(default_allow_sql):
def test_config_deprecated():
# The --config option should show a deprecation message
runner = CliRunner(mix_stderr=False)
runner = CliRunner()
result = runner.invoke(
cli, ["--config", "allow_download:off", "--get", "/-/settings.json"]
)
assert result.exit_code == 0
assert not json.loads(result.output)["allow_download"]
assert "will be deprecated in" in result.stderr
# Extract JSON from output (skip the deprecation warning line)
output_lines = result.output.strip().split("\n")
json_output = "\n".join(line for line in output_lines if line.startswith("{"))
assert not json.loads(json_output)["allow_download"]
assert "will be deprecated in" in result.output
def test_sql_errors_logged_to_stderr():
runner = CliRunner(mix_stderr=False)
runner = CliRunner()
result = runner.invoke(cli, ["--get", "/_memory.json?sql=select+blah"])
assert result.exit_code == 1
assert "sql = 'select blah', params = {}: no such column: blah\n" in result.stderr