https://github.com/python/cpython/commit/fbbef609d18fffd87ea1c16f3f6cd0bb08803489
commit: fbbef609d18fffd87ea1c16f3f6cd0bb08803489
branch: 3.12
author: Bénédikt Tran <[email protected]>
committer: picnixz <[email protected]>
date: 2025-01-18T12:01:56+01:00
summary:

[3.12] gh-127637: add tests for `dis` command-line interface (#127759) (#127780)

files:
A Misc/NEWS.d/next/Tests/2024-12-09-12-35-44.gh-issue-127637.KLx-9I.rst
M Lib/dis.py
M Lib/test/test_dis.py

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..de7def164187e4 100644
--- a/Lib/test/test_dis.py
+++ b/Lib/test/test_dis.py
@@ -3,16 +3,17 @@
 import contextlib
 import dis
 import io
+import opcode
 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
-
 
 def get_tb():
     def _error():
@@ -2069,5 +2070,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.

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to