diff options
Diffstat (limited to 'pyflakes/test/test_type_annotations.py')
-rw-r--r-- | pyflakes/test/test_type_annotations.py | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/pyflakes/test/test_type_annotations.py b/pyflakes/test/test_type_annotations.py index 1fa4f5e..15c658b 100644 --- a/pyflakes/test/test_type_annotations.py +++ b/pyflakes/test/test_type_annotations.py @@ -42,6 +42,7 @@ class TestTypeAnnotations(TestCase): def test_typingExtensionsOverload(self): """Allow intentional redefinitions via @typing_extensions.overload""" self.flakes(""" + import typing_extensions from typing_extensions import overload @overload @@ -54,6 +55,17 @@ class TestTypeAnnotations(TestCase): def f(s): return s + + @typing_extensions.overload + def g(s): # type: (None) -> None + pass + + @typing_extensions.overload + def g(s): # type: (int) -> int + pass + + def g(s): + return s """) @skipIf(version_info < (3, 5), 'new in Python 3.5') @@ -426,3 +438,64 @@ class TestTypeAnnotations(TestCase): def f(c: C, /): ... """) + + @skipIf(version_info < (3,), 'new in Python 3') + def test_partially_quoted_type_annotation(self): + self.flakes(""" + from queue import Queue + from typing import Optional + + def f() -> Optional['Queue[str]']: + return None + """) + + @skipIf(version_info < (3,), 'new in Python 3') + def test_literal_type_typing(self): + self.flakes(""" + from typing import Literal + + def f(x: Literal['some string']) -> None: + return None + """) + + @skipIf(version_info < (3,), 'new in Python 3') + def test_literal_type_typing_extensions(self): + self.flakes(""" + from typing_extensions import Literal + + def f(x: Literal['some string']) -> None: + return None + """) + + @skipIf(version_info < (3,), 'new in Python 3') + def test_literal_union_type_typing(self): + self.flakes(""" + from typing import Literal + + def f(x: Literal['some string', 'foo bar']) -> None: + return None + """) + + @skipIf(version_info < (3,), 'new in Python 3') + def test_deferred_twice_annotation(self): + self.flakes(""" + from queue import Queue + from typing import Optional + + + def f() -> "Optional['Queue[str]']": + return None + """) + + @skipIf(version_info < (3, 7), 'new in Python 3.7') + def test_partial_string_annotations_with_future_annotations(self): + self.flakes(""" + from __future__ import annotations + + from queue import Queue + from typing import Optional + + + def f() -> Optional['Queue[str]']: + return None + """) |