From 3a0a484fcb73b2a429913b394eadd4e902cc89df Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 10 Jun 2020 09:36:39 +0200 Subject: [PATCH] Try to get get the tests for Python 3.9 passing, fixes #1608 --- .travis.yml | 1 + test/test_api/test_api.py | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8c0b9a38..b31b114c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ dist: xenial language: python python: + - 3.9-dev - 3.8 - 3.7 - 3.6 diff --git a/test/test_api/test_api.py b/test/test_api/test_api.py index 0099eaa4..56516073 100644 --- a/test/test_api/test_api.py +++ b/test/test_api/test_api.py @@ -134,8 +134,19 @@ def test_infer_on_non_name(Script): assert Script('import x').infer(column=0) == [] -def test_infer_on_generator(Script): - def_, = Script('def x(): yield 1\ny=x()\ny').infer() +def test_infer_on_generator(Script, environment): + script = Script('def x(): yield 1\ny=x()\ny') + def_, = script.infer() + if environment.version_info >= (3, 9): + # The Generator in Python 3.9 is properly inferred, however once it is + # converted from stub to Python, the definition is + # Generator = _SpecialGenericAlias(collections.abc.Generator, 3) + # This is pretty normal for most typing types, like Sequence, List, + # etc. + assert def_.name == '_SpecialGenericAlias' + else: + assert def_.name == 'Generator' + def_, = script.infer(only_stubs=True) assert def_.name == 'Generator'