Mercurial > cpython-lru_cache-weakref
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
