python / python/cpython

Add tests for command-line interface

Open
#131,178 13 comments 2 reactions 1 assignee View on GitHub

@donbarbos is already working on this.

Since Mar 13, 2025.

easy tests type-feature
Dominant language
Python
Stars
77.2k
Forks
35.9k
PR merge metrics
PR metrics pending

Description

While working on #130160 and #93096 it was decided that it would be worth paying attention to the problem of lack of tests for command line interface.

List of all cli modules is in the documentation: https://docs.python.org/dev/library/cmdline.html

Many modules are missing command line interface tests, so I suggest using this issue to submit PRs for now only for well-documented interfaces, for example:

  • tokenize (gh-131274)
  • platform (gh-131542)
  • pickle (gh-131275)
  • ast (gh-133329)
  • pickletools (gh-131287)
  • http.server (gh-132540)
  • profile (gh-134103)
  • cProfile (gh-134269)
  • site (gh-133582)

TODO: Make sure all documented have tests for CLI (others are not so important as it has not been decided what to do with them yet)

You can use PR #127759 for dis module or #118132 for random module as a reference.
And I also suggest using subprocess.Popen to allocate a separate resource since some modules can block a lot of time.

[!IMPORTANT]
For those who want to work on the issue, please:

  • Select one module for which tests will be improved. It's easier to review and backport.
  • Open a pull request with the following title: gh-131178: Add tests for `MODULE_NAME` command-line interface
Linked PRs
  • gh-131274
  • gh-131275
  • gh-131287
  • gh-131326
  • gh-132540
  • gh-133329
  • gh-133582
  • gh-134103
  • gh-134224
  • gh-134269
  • gh-134279
  • gh-134287
  • gh-137748
  • gh-137807
  • gh-137816
  • gh-137832
  • gh-137833
  • gh-139934
  • gh-139947
  • gh-139983
  • gh-140199
  • gh-140200
  • gh-143835
  • gh-144918
  • gh-147995
  • gh-149681
  • gh-149683
  • gh-149825
  • gh-149868
  • gh-150203
  • gh-150655
  • gh-150656
  • gh-151855
  • gh-151971
  • gh-157133
  • gh-157154

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.