summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_ast.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py
index 7c9a57c..6c932e1 100644
--- a/Lib/test/test_ast.py
+++ b/Lib/test/test_ast.py
@@ -11,6 +11,7 @@ import weakref
from textwrap import dedent
from test import support
+from test.support import os_helper, script_helper
from test.support.ast_helper import ASTTestMixin
def to_tuple(t):
@@ -2564,6 +2565,25 @@ class ModuleStateTests(unittest.TestCase):
self.assertEqual(res, 0)
+class ASTMainTests(unittest.TestCase):
+ # Tests `ast.main()` function.
+
+ def test_cli_file_input(self):
+ code = "print(1, 2, 3)"
+ expected = ast.dump(ast.parse(code), indent=3)
+
+ with os_helper.temp_dir() as tmp_dir:
+ filename = os.path.join(tmp_dir, "test_module.py")
+ with open(filename, 'w', encoding='utf-8') as f:
+ f.write(code)
+ res, _ = script_helper.run_python_until_end("-m", "ast", filename)
+
+ self.assertEqual(res.err, b"")
+ self.assertEqual(expected.splitlines(),
+ res.out.decode("utf8").splitlines())
+ self.assertEqual(res.rc, 0)
+
+
def main():
if __name__ != '__main__':
return