diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-01-05 00:00:26 +0900 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-01-13 13:15:33 +0900 |
commit | 729ffa1fcd800ebbbee25f53afad81f526d1c7f8 (patch) | |
tree | fa67df63599bc27b9b760be6d7d95cb6b8e8d261 /tests/test_pycode_ast.py | |
parent | 4cecd700e04c6870bdbf1b7c93b92bb7f78456e2 (diff) | |
download | sphinx-git-729ffa1fcd800ebbbee25f53afad81f526d1c7f8.tar.gz |
Add sphinx.pycode.ast.parse() and unparse()
Diffstat (limited to 'tests/test_pycode_ast.py')
-rw-r--r-- | tests/test_pycode_ast.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/test_pycode_ast.py b/tests/test_pycode_ast.py new file mode 100644 index 000000000..af7e34a86 --- /dev/null +++ b/tests/test_pycode_ast.py @@ -0,0 +1,40 @@ +""" + test_pycode_ast + ~~~~~~~~~~~~~~~ + + Test pycode.ast + + :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import pytest + +from sphinx.pycode import ast + + +@pytest.mark.parametrize('source,expected', [ + ("os.path", "os.path"), # Attribute + ("b'bytes'", "b'bytes'"), # Bytes + ("object()", "object()"), # Call + ("1234", "1234"), # Constant + ("{'key1': 'value1', 'key2': 'value2'}", + "{'key1': 'value1', 'key2': 'value2'}"), # Dict + ("...", "..."), # Ellipsis + ("Tuple[int, int]", "Tuple[int, int]"), # Index, Subscript + ("lambda x, y: x + y", + "<function <lambda>>"), # Lambda + ("[1, 2, 3]", "[1, 2, 3]"), # List + ("sys", "sys"), # Name, NameConstant + ("1234", "1234"), # Num + ("{1, 2, 3}", "{1, 2, 3}"), # Set + ("'str'", "'str'"), # Str + ("(1, 2, 3)", "1, 2, 3"), # Tuple +]) +def test_unparse(source, expected): + module = ast.parse(source) + assert ast.unparse(module.body[0].value) == expected + + +def test_unparse_None(): + assert ast.unparse(None) is None |