@@ -158,7 +158,7 @@ exit! a ohno
158
158
caught
159
159
160
160
[case testDisplays]
161
- from typing import List, Set, Tuple, Sequence, Dict, Any
161
+ from typing import List, Set, Tuple, Sequence, Dict, Any, Mapping
162
162
163
163
def listDisplay(x: List[int], y: List[int]) -> List[int]:
164
164
return [1, 2, *x, *y, 3]
@@ -172,12 +172,17 @@ def tupleDisplay(x: Sequence[str], y: Sequence[str]) -> Tuple[str, ...]:
172
172
def dictDisplay(x: str, y1: Dict[str, int], y2: Dict[str, int]) -> Dict[str, int]:
173
173
return {x: 2, **y1, 'z': 3, **y2}
174
174
175
+ def dictDisplayUnpackMapping(obj: Mapping[str, str]) -> Dict[str, str]:
176
+ return {**obj, "env": "value"}
177
+
175
178
[file driver.py]
176
- from native import listDisplay, setDisplay, tupleDisplay, dictDisplay
179
+ import os
180
+ from native import listDisplay, setDisplay, tupleDisplay, dictDisplay, dictDisplayUnpackMapping
177
181
assert listDisplay([4], [5, 6]) == [1, 2, 4, 5, 6, 3]
178
182
assert setDisplay({4}, {5}) == {1, 2, 3, 4, 5}
179
183
assert tupleDisplay(['4', '5'], ['6']) == ('1', '2', '4', '5', '6', '3')
180
184
assert dictDisplay('x', {'y1': 1}, {'y2': 2, 'z': 5}) == {'x': 2, 'y1': 1, 'y2': 2, 'z': 5}
185
+ assert dictDisplayUnpackMapping(os.environ) == {**os.environ, "env": "value"}
181
186
182
187
[case testArbitraryLvalues]
183
188
from typing import List, Dict, Any
0 commit comments