blob: 883428b7d853e33b43c097676773ce5674f5251e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
# For details: https://github.com/pylint-dev/astroid/blob/main/LICENSE
# Copyright (c) https://github.com/pylint-dev/astroid/blob/main/CONTRIBUTORS.txt
from __future__ import annotations
import pytest
from astroid import builder, nodes
try:
import typing_extensions
HAS_TYPING_EXTENSIONS = True
HAS_TYPING_EXTENSIONS_TYPEVAR = hasattr(typing_extensions, "TypeVar")
except ImportError:
HAS_TYPING_EXTENSIONS = False
HAS_TYPING_EXTENSIONS_TYPEVAR = False
@pytest.mark.skipif(
not HAS_TYPING_EXTENSIONS,
reason="These tests require the typing_extensions library",
)
class TestTypingExtensions:
@staticmethod
@pytest.mark.skipif(
not HAS_TYPING_EXTENSIONS_TYPEVAR,
reason="Need typing_extensions>=4.4.0 to test TypeVar",
)
def test_typing_extensions_types() -> None:
ast_nodes = builder.extract_node(
"""
from typing_extensions import TypeVar
TypeVar('MyTypeVar', int, float, complex) #@
TypeVar('AnyStr', str, bytes) #@
"""
)
for node in ast_nodes:
inferred = next(node.infer())
assert isinstance(inferred, nodes.ClassDef)
|