|
13 | 13 | # ----------------------------------------------------------------------------- |
14 | 14 |
|
15 | 15 | import os |
| 16 | +import sys |
16 | 17 | import math |
17 | 18 | import random |
18 | 19 |
|
|
27 | 28 | # ----------------------------------------------------------------------------- |
28 | 29 |
|
29 | 30 |
|
| 31 | +def eval_formatter_list_comprehension_check(f): |
| 32 | + ns = dict(n=12) |
| 33 | + s = f.format("{[n//i for i in range(1,8)]}", **ns) |
| 34 | + assert s == "[12, 6, 4, 3, 2, 2, 1]" |
| 35 | + |
| 36 | + |
30 | 37 | def eval_formatter_check(f): |
31 | 38 | ns = dict(n=12, pi=math.pi, stuff="hello there", os=os, u="café", b="café") |
32 | 39 | s = f.format("{n} {n//4} {stuff.split()[0]}", **ns) |
33 | 40 | assert s == "12 3 hello" |
34 | 41 | s = f.format(" ".join(["{n//%i}" % i for i in range(1, 8)]), **ns) |
35 | 42 | assert s == "12 6 4 3 2 2 1" |
36 | | - s = f.format("{[n//i for i in range(1,8)]}", **ns) |
| 43 | + s = f.format("{list(n//i for i in range(1,8))}", **ns) |
37 | 44 | assert s == "[12, 6, 4, 3, 2, 2, 1]" |
38 | 45 | s = f.format("{stuff!s}", **ns) |
39 | 46 | assert s == ns["stuff"] |
@@ -78,12 +85,15 @@ def test_eval_formatter(): |
78 | 85 | f = text.EvalFormatter() |
79 | 86 | eval_formatter_check(f) |
80 | 87 | eval_formatter_no_slicing_check(f) |
| 88 | + if sys.version_info < (3, 14): |
| 89 | + eval_formatter_list_comprehension_check(f) |
81 | 90 |
|
82 | 91 |
|
83 | 92 | def test_full_eval_formatter(): |
84 | 93 | f = text.FullEvalFormatter() |
85 | 94 | eval_formatter_check(f) |
86 | 95 | eval_formatter_slicing_check(f) |
| 96 | + eval_formatter_list_comprehension_check(f) |
87 | 97 |
|
88 | 98 |
|
89 | 99 | def test_dollar_formatter(): |
|
0 commit comments