diff Lib/test/test_parser.py @ 76822:129289144dfb 3.2

Issue #14697: Fix missing parser module support for set displays and set comprehensions.
author Mark Dickinson <mdickinson@enthought.com>
date Mon, 07 May 2012 16:34:34 +0100
parents fc17f70292f6
children 2b1cc84bf1d9 4815a4a4a852
line wrap: on
line diff
--- a/Lib/test/test_parser.py	Mon May 07 12:01:27 2012 +0100
+++ b/Lib/test/test_parser.py	Mon May 07 16:34:34 2012 +0100
@@ -305,6 +305,29 @@
                          "except Exception as e:\n"
                          "    raise ValueError from e\n")
 
+    def test_set_displays(self):
+        self.check_expr('{2}')
+        self.check_expr('{2,}')
+        self.check_expr('{2, 3}')
+        self.check_expr('{2, 3,}')
+
+    def test_dict_displays(self):
+        self.check_expr('{}')
+        self.check_expr('{a:b}')
+        self.check_expr('{a:b,}')
+        self.check_expr('{a:b, c:d}')
+        self.check_expr('{a:b, c:d,}')
+
+    def test_set_comprehensions(self):
+        self.check_expr('{x for x in seq}')
+        self.check_expr('{f(x) for x in seq}')
+        self.check_expr('{f(x) for x in seq if condition(x)}')
+
+    def test_dict_comprehensions(self):
+        self.check_expr('{x:x for x in seq}')
+        self.check_expr('{x**2:x[3] for x in seq if condition(x)}')
+        self.check_expr('{x:x for x in seq1 for y in seq2 if condition(x, y)}')
+
 
 #
 #  Second, we take *invalid* trees and make sure we get ParserError