Blob Blame History Raw
From 0e5d0b418369f5e460f9022441ae7bde1e502305 Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Mon, 11 Jul 2022 14:23:45 -0700
Subject: [PATCH 2/5] Split asyncio.coroutine tests and set max_pyver 3.10 for
 them

iterable_context_py3 includes some checks that we don't emit
errors for asyncio.coroutine, but asyncio.coroutine has been
removed in Python 3.11, so we need to set a max version of
3.10 for these tests.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
 .../functional/i/iterable_context_asyncio.py  | 43 +++++++++++++++++++
 .../functional/i/iterable_context_asyncio.rc  |  2 +
 tests/functional/i/iterable_context_py3.py    | 37 ----------------
 3 files changed, 45 insertions(+), 37 deletions(-)
 create mode 100644 tests/functional/i/iterable_context_asyncio.py
 create mode 100644 tests/functional/i/iterable_context_asyncio.rc

diff --git a/tests/functional/i/iterable_context_asyncio.py b/tests/functional/i/iterable_context_asyncio.py
new file mode 100644
index 000000000..20a32cefd
--- /dev/null
+++ b/tests/functional/i/iterable_context_asyncio.py
@@ -0,0 +1,43 @@
+"""
+Checks that we don't erroneously emit not-an-iterable errors for
+coroutines built with asyncio.coroutine.
+
+These decorators were deprecated in 3.8 and removed in 3.10.
+"""
+# pylint: disable=missing-docstring,too-few-public-methods,unused-argument,bad-mcs-method-argument
+# pylint: disable=wrong-import-position
+import asyncio
+
+
+@asyncio.coroutine
+def coroutine_function_return_none():
+    return
+
+
+@asyncio.coroutine
+def coroutine_function_return_object():
+    return 12
+
+
+@asyncio.coroutine
+def coroutine_function_return_future():
+    return asyncio.Future()
+
+
+@asyncio.coroutine
+def coroutine_function_pass():
+    pass
+
+
+@asyncio.coroutine
+def coroutine_generator():
+    yield
+
+
+@asyncio.coroutine
+def main():
+    yield from coroutine_function_return_none()
+    yield from coroutine_function_return_object()
+    yield from coroutine_function_return_future()
+    yield from coroutine_function_pass()
+    yield from coroutine_generator()
diff --git a/tests/functional/i/iterable_context_asyncio.rc b/tests/functional/i/iterable_context_asyncio.rc
new file mode 100644
index 000000000..4e2b74831
--- /dev/null
+++ b/tests/functional/i/iterable_context_asyncio.rc
@@ -0,0 +1,2 @@
+[testoptions]
+max_pyver=3.10
diff --git a/tests/functional/i/iterable_context_py3.py b/tests/functional/i/iterable_context_py3.py
index 07eda00f4..c09cba12d 100644
--- a/tests/functional/i/iterable_context_py3.py
+++ b/tests/functional/i/iterable_context_py3.py
@@ -16,40 +16,3 @@ for i in SomeClass:
     print(i)
 for i in SomeClass():  # [not-an-iterable]
     print(i)
-
-
-import asyncio
-
-
-@asyncio.coroutine
-def coroutine_function_return_none():
-    return
-
-
-@asyncio.coroutine
-def coroutine_function_return_object():
-    return 12
-
-
-@asyncio.coroutine
-def coroutine_function_return_future():
-    return asyncio.Future()
-
-
-@asyncio.coroutine
-def coroutine_function_pass():
-    pass
-
-
-@asyncio.coroutine
-def coroutine_generator():
-    yield
-
-
-@asyncio.coroutine
-def main():
-    yield from coroutine_function_return_none()
-    yield from coroutine_function_return_object()
-    yield from coroutine_function_return_future()
-    yield from coroutine_function_pass()
-    yield from coroutine_generator()
-- 
2.37.0