summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_unparse.py
diff options
context:
space:
mode:
authorBatuhan Taskaya <batuhanosmantaskaya@gmail.com>2020-05-18 20:48:49 (GMT)
committerGitHub <noreply@github.com>2020-05-18 20:48:49 (GMT)
commitc102a148256b00b7d48c51a1a97df19042e603de (patch)
tree7bc9b18b124fdcceeb28ce56eff2fec81e2188ed /Lib/test/test_unparse.py
parent75b863aa97016c6813709eb620c43295f84dd51f (diff)
downloadcpython-c102a148256b00b7d48c51a1a97df19042e603de.zip
cpython-c102a148256b00b7d48c51a1a97df19042e603de.tar.gz
cpython-c102a148256b00b7d48c51a1a97df19042e603de.tar.bz2
bpo-38870: Don't omit parenthesis when unparsing a slice in ast.unparse
When unparsing a non-empty tuple, the parentheses can be safely omitted if there aren't any elements that explicitly require them (such as starred expressions).
Diffstat (limited to 'Lib/test/test_unparse.py')
-rw-r--r--Lib/test/test_unparse.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/Lib/test/test_unparse.py b/Lib/test/test_unparse.py
index 6d82872..bb725ce 100644
--- a/Lib/test/test_unparse.py
+++ b/Lib/test/test_unparse.py
@@ -279,10 +279,13 @@ class UnparseTestCase(ASTTestCase):
self.check_ast_roundtrip(r"""{**{'y': 2}, 'x': 1}""")
self.check_ast_roundtrip(r"""{**{'y': 2}, **{'x': 1}}""")
- def test_ext_slices(self):
+ def test_slices(self):
self.check_ast_roundtrip("a[i]")
self.check_ast_roundtrip("a[i,]")
self.check_ast_roundtrip("a[i, j]")
+ self.check_ast_roundtrip("a[(*a,)]")
+ self.check_ast_roundtrip("a[(a:=b)]")
+ self.check_ast_roundtrip("a[(a:=b,c)]")
self.check_ast_roundtrip("a[()]")
self.check_ast_roundtrip("a[i:j]")
self.check_ast_roundtrip("a[:j]")
@@ -470,6 +473,11 @@ class CosmeticTestCase(ASTTestCase):
for prefix in ("not",):
self.check_src_roundtrip(f"{prefix} 1")
+ def test_slices(self):
+ self.check_src_roundtrip("a[1]")
+ self.check_src_roundtrip("a[1, 2]")
+ self.check_src_roundtrip("a[(1, *a)]")
+
class DirectoryTestCase(ASTTestCase):
"""Test roundtrip behaviour on all files in Lib and Lib/test."""