From 0b929a715aeb26f1d235cc81d68e44995bbc2ee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?= <10796600+picnixz@users.noreply.github.com> Date: Mon, 9 Dec 2024 19:02:22 +0100 Subject: [PATCH] gh-127637: add tests for `dis` command-line interface (#127759) --- Lib/dis.py | 4 ++-- Lib/test/test_dis.py | 17 ++++++++++++++++- ...24-12-09-12-35-44.gh-issue-127637.KLx-9I.rst | 1 + 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 Misc/NEWS.d/next/Tests/2024-12-09-12-35-44.gh-issue-127637.KLx-9I.rst diff --git a/Lib/dis.py b/Lib/dis.py index 320dec03d25b0c..b1069c825289cf 100644 --- a/Lib/dis.py +++ b/Lib/dis.py @@ -790,12 +790,12 @@ def dis(self): return output.getvalue() -def main(): +def main(args=None): import argparse parser = argparse.ArgumentParser() parser.add_argument('infile', type=argparse.FileType('rb'), nargs='?', default='-') - args = parser.parse_args() + args = parser.parse_args(args=args) with args.infile as infile: source = infile.read() code = compile(source, args.infile.name, "exec") diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py index c90702a408eb33..397a4029b4b05c 100644 --- a/Lib/test/test_dis.py +++ b/Lib/test/test_dis.py @@ -5,10 +5,12 @@ import io import re import sys +import tempfile import types import unittest from test.support import (captured_stdout, requires_debug_ranges, - requires_specialization, cpython_only) + requires_specialization, cpython_only, + os_helper) from test.support.bytecode_helper import BytecodeTestCase import opcode @@ -2069,5 +2071,18 @@ def get_disassembly(self, tb): return output.getvalue() +class TestDisCLI(unittest.TestCase): + + def setUp(self): + self.filename = tempfile.mktemp() + self.addCleanup(os_helper.unlink, self.filename) + + def test_invocation(self): + with self.assertRaises(SystemExit): + # suppress argparse error message + with contextlib.redirect_stderr(io.StringIO()): + dis.main(args=['--unknown', self.filename]) + + if __name__ == "__main__": unittest.main() diff --git a/Misc/NEWS.d/next/Tests/2024-12-09-12-35-44.gh-issue-127637.KLx-9I.rst b/Misc/NEWS.d/next/Tests/2024-12-09-12-35-44.gh-issue-127637.KLx-9I.rst new file mode 100644 index 00000000000000..ac5d9827b07199 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2024-12-09-12-35-44.gh-issue-127637.KLx-9I.rst @@ -0,0 +1 @@ +Add tests for the :mod:`dis` command-line interface. Patch by Bénédikt Tran.