diff options
author | Batuhan Taskaya <batuhanosmantaskaya@gmail.com> | 2020-05-18 20:48:49 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-18 20:48:49 (GMT) |
commit | c102a148256b00b7d48c51a1a97df19042e603de (patch) | |
tree | 7bc9b18b124fdcceeb28ce56eff2fec81e2188ed /Lib/test/test_unparse.py | |
parent | 75b863aa97016c6813709eb620c43295f84dd51f (diff) | |
download | cpython-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.py | 10 |
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.""" |