summaryrefslogtreecommitdiff
path: root/tests/test_pycode_ast.py
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2020-01-05 00:00:26 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2020-01-13 13:15:33 +0900
commit729ffa1fcd800ebbbee25f53afad81f526d1c7f8 (patch)
treefa67df63599bc27b9b760be6d7d95cb6b8e8d261 /tests/test_pycode_ast.py
parent4cecd700e04c6870bdbf1b7c93b92bb7f78456e2 (diff)
downloadsphinx-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.py40
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