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")
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():
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()