Skip to content

Commit 1090d66

Browse files
test(cli): skip invalid-command snapshot on Python 3.12.0-3.12.6 (#1982)
Closes #1864. The reference snapshots for `test_invalid_command` reflect the no-quote argparse error format that landed in CPython 3.13 and was backported to 3.12.7 (gh-129019). On Python 3.12.0-3.12.6 argparse still prints quoted choices, so the snapshot diff fails for those patch releases. Skip the test on 3.12.0-3.12.6 with a precise `skipif` rather than maintaining a duplicate snapshot. The CI matrix already runs on recent 3.12.x where the test is exercised; users on older patches just see the test as `s` instead of a hard failure. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent a92dbdc commit 1090d66

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

tests/test_cli.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,15 @@ def test_no_argv(util: UtilFixture, capsys, file_regression):
4444
),
4545
],
4646
)
47+
@pytest.mark.skipif(
48+
sys.version_info[:2] == (3, 12) and sys.version_info < (3, 12, 7),
49+
reason=(
50+
"argparse stopped quoting choices in 3.13 (CPython gh-129019), "
51+
"backported to 3.12.7. The reference snapshot reflects the "
52+
"no-quote format, so older 3.12.x patches (3.12.0-3.12.6) print "
53+
"quoted choices and fail. See commitizen-tools/commitizen#1864."
54+
),
55+
)
4756
@pytest.mark.usefixtures("python_version", "consistent_terminal_output")
4857
def test_invalid_command(util: UtilFixture, capsys, file_regression, arg):
4958
with pytest.raises(NoCommandFoundError):

0 commit comments

Comments
 (0)