blob: 70f1ba19d43f71f58f255a910ead04284177c2da [file]
# 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)