|
25 | 25 | GenericCallable, |
26 | 26 | GetArg, |
27 | 27 | GetArgs, |
28 | | - GetAttr, |
| 28 | + GetMember, |
| 29 | + GetMemberType, |
29 | 30 | GetName, |
30 | 31 | GetType, |
31 | 32 | GetAnnotations, |
@@ -198,27 +199,27 @@ def test_eval_arg_order(): |
198 | 199 |
|
199 | 200 |
|
200 | 201 | def test_type_getattr_union_1(): |
201 | | - d = eval_typing(GetAttr[TA | TB, Literal["x"]]) |
| 202 | + d = eval_typing(GetMemberType[TA | TB, Literal["x"]]) |
202 | 203 | assert d == int | str |
203 | 204 |
|
204 | 205 |
|
205 | 206 | def test_type_getattr_union_2(): |
206 | | - d = eval_typing(GetAttr[TA, Literal["x"] | Literal["y"]]) |
| 207 | + d = eval_typing(GetMemberType[TA, Literal["x"] | Literal["y"]]) |
207 | 208 | assert d == int | list[float] |
208 | 209 |
|
209 | 210 |
|
210 | 211 | def test_type_getattr_union_3(): |
211 | | - d = eval_typing(GetAttr[TA | TB, Literal["x"] | Literal["y"]]) |
| 212 | + d = eval_typing(GetMemberType[TA | TB, Literal["x"] | Literal["y"]]) |
212 | 213 | assert d == int | list[float] | str | list[object] |
213 | 214 |
|
214 | 215 |
|
215 | 216 | def test_type_getattr_union_4(): |
216 | | - d = eval_typing(GetAttr[TA, Literal["x", "y"]]) |
| 217 | + d = eval_typing(GetMemberType[TA, Literal["x", "y"]]) |
217 | 218 | assert d == int | list[float] |
218 | 219 |
|
219 | 220 |
|
220 | 221 | def test_type_getattr_union_5(): |
221 | | - d = eval_typing(GetAttr[TA, Literal["x", "y"] | Literal["z"]]) |
| 222 | + d = eval_typing(GetMemberType[TA, Literal["x", "y"] | Literal["z"]]) |
222 | 223 | assert d == int | list[float] | TB |
223 | 224 |
|
224 | 225 |
|
@@ -379,6 +380,21 @@ def test_type_from_union_06(): |
379 | 380 | assert _is_generic_permutation(n, tuple[int, list[IntTree]]) |
380 | 381 |
|
381 | 382 |
|
| 383 | +def test_getmember_01(): |
| 384 | + d = eval_typing(GetMember[TA, Literal["x"]]) |
| 385 | + assert d == Member[Literal["x"], int, Never, Never, TA] |
| 386 | + d = eval_typing(GetMemberType[TA, Literal["a"]]) |
| 387 | + assert d == Never |
| 388 | + |
| 389 | + d = eval_typing(GetMember[TA | TB, Literal["x"]]) |
| 390 | + assert d == ( |
| 391 | + Member[Literal["x"], int, Never, Never, TA] |
| 392 | + | Member[Literal["x"], str, Never, Never, TB] |
| 393 | + ) |
| 394 | + d = eval_typing(GetMember[TA | TB, Literal[""]]) |
| 395 | + assert d == Never |
| 396 | + |
| 397 | + |
382 | 398 | def test_getarg_never(): |
383 | 399 | d = eval_typing(GetArg[Never, object, Literal[0]]) |
384 | 400 | assert d is Never |
@@ -1537,15 +1553,15 @@ class AnnoTest: |
1537 | 1553 |
|
1538 | 1554 |
|
1539 | 1555 | def test_type_eval_annotated_02(): |
1540 | | - res = eval_typing(IsSub[GetAttr[AnnoTest, Literal["a"]], int]) |
| 1556 | + res = eval_typing(IsSub[GetMemberType[AnnoTest, Literal["a"]], int]) |
1541 | 1557 | assert res == _BoolLiteral[True] |
1542 | 1558 |
|
1543 | 1559 |
|
1544 | 1560 | def test_type_eval_annotated_03(): |
1545 | | - res = eval_typing(Uppercase[GetAttr[AnnoTest, Literal["b"]]]) |
| 1561 | + res = eval_typing(Uppercase[GetMemberType[AnnoTest, Literal["b"]]]) |
1546 | 1562 | assert res == Literal["TEST"] |
1547 | 1563 |
|
1548 | 1564 |
|
1549 | 1565 | def test_type_eval_annotated_04(): |
1550 | | - res = eval_typing(GetAnnotations[GetAttr[AnnoTest, Literal["b"]]]) |
| 1566 | + res = eval_typing(GetAnnotations[GetMemberType[AnnoTest, Literal["b"]]]) |
1551 | 1567 | assert res == Literal["blah"] |
0 commit comments