dev-python/pytest-asyncio: Enable py3.8
authorMichał Górny <mgorny@gentoo.org>
Mon, 20 Apr 2020 13:29:39 +0000 (15:29 +0200)
committerMichał Górny <mgorny@gentoo.org>
Mon, 20 Apr 2020 15:48:50 +0000 (17:48 +0200)
Signed-off-by: Michał Górny <mgorny@gentoo.org>
dev-python/pytest-asyncio/files/pytest-asyncio-0.10.0-py38.patch [new file with mode: 0644]
dev-python/pytest-asyncio/pytest-asyncio-0.10.0.ebuild

diff --git a/dev-python/pytest-asyncio/files/pytest-asyncio-0.10.0-py38.patch b/dev-python/pytest-asyncio/files/pytest-asyncio-0.10.0-py38.patch
new file mode 100644 (file)
index 0000000..5eee735
--- /dev/null
@@ -0,0 +1,187 @@
+From ab2b14048a691479fa9f8811aaa558018c6db6e3 Mon Sep 17 00:00:00 2001
+From: Andrew Svetlov <andrew.svetlov@gmail.com>
+Date: Thu, 9 Apr 2020 08:44:46 +0200
+Subject: [PATCH] Test on Python 3.8, drop 3.3 and 3.4
+
+---
+ .travis.yml                          |  7 +++---
+ setup.py                             |  1 +
+ tests/conftest.py                    |  2 +-
+ tests/test_hypothesis_integration.py |  2 +-
+ tests/test_simple.py                 | 32 +++++++++++-----------------
+ tests/test_simple_35.py              | 17 ++++++---------
+ tests/test_subprocess.py             |  6 ++----
+ tox.ini                              |  5 +++--
+ 8 files changed, 29 insertions(+), 43 deletions(-)
+
+diff --git a/tests/conftest.py b/tests/conftest.py
+index 6203cf8..cc2ec16 100644
+--- a/tests/conftest.py
++++ b/tests/conftest.py
+@@ -17,7 +17,7 @@ def dependent_fixture(event_loop):
+     async def just_a_sleep():
+         """Just sleep a little while."""
+         nonlocal event_loop
+-        await asyncio.sleep(0.1, loop=event_loop)
++        await asyncio.sleep(0.1)
+         nonlocal counter
+         counter += 1
+diff --git a/tests/test_simple.py b/tests/test_simple.py
+index 1627139..00c07fc 100644
+--- a/tests/test_simple.py
++++ b/tests/test_simple.py
+@@ -1,28 +1,26 @@
+ """Quick'n'dirty unit tests for provided fixtures and markers."""
+ import asyncio
+-import os
+ import pytest
+ import pytest_asyncio.plugin
+-async def async_coro(loop=None):
+-    """A very simple coroutine."""
+-    await asyncio.sleep(0, loop=loop)
++async def async_coro():
++    await asyncio.sleep(0)
+     return 'ok'
+ def test_event_loop_fixture(event_loop):
+     """Test the injection of the event_loop fixture."""
+     assert event_loop
+-    ret = event_loop.run_until_complete(async_coro(event_loop))
++    ret = event_loop.run_until_complete(async_coro())
+     assert ret == 'ok'
+ @pytest.mark.asyncio
+-def test_asyncio_marker():
++async def test_asyncio_marker():
+     """Test the asyncio pytest marker."""
+-    yield  # sleep(0)
++    await asyncio.sleep(0)
+ @pytest.mark.xfail(reason='need a failure', strict=True)
+@@ -45,13 +43,11 @@ async def closer(_, writer):
+         writer.close()
+     server1 = await asyncio.start_server(closer, host='localhost',
+-                                         port=unused_tcp_port,
+-                                         loop=event_loop)
++                                         port=unused_tcp_port)
+     with pytest.raises(IOError):
+         await asyncio.start_server(closer, host='localhost',
+-                                   port=unused_tcp_port,
+-                                   loop=event_loop)
++                                   port=unused_tcp_port)
+     server1.close()
+     await server1.wait_closed()
+@@ -68,20 +64,16 @@ async def closer(_, writer):
+                            unused_tcp_port_factory())
+     server1 = await asyncio.start_server(closer, host='localhost',
+-                                         port=port1,
+-                                         loop=event_loop)
++                                         port=port1)
+     server2 = await asyncio.start_server(closer, host='localhost',
+-                                         port=port2,
+-                                         loop=event_loop)
++                                         port=port2)
+     server3 = await asyncio.start_server(closer, host='localhost',
+-                                         port=port3,
+-                                         loop=event_loop)
++                                         port=port3)
+     for port in port1, port2, port3:
+         with pytest.raises(IOError):
+             await asyncio.start_server(closer, host='localhost',
+-                                       port=port,
+-                                       loop=event_loop)
++                                       port=port)
+     server1.close()
+     await server1.wait_closed()
+@@ -117,7 +109,7 @@ class Test:
+     @pytest.mark.asyncio
+     async def test_asyncio_marker_method(self, event_loop):
+         """Test the asyncio pytest marker in a Test class."""
+-        ret = await async_coro(event_loop)
++        ret = await async_coro()
+         assert ret == 'ok'
+diff --git a/tests/test_simple_35.py b/tests/test_simple_35.py
+index 1e4d697..4141fb0 100644
+--- a/tests/test_simple_35.py
++++ b/tests/test_simple_35.py
+@@ -6,7 +6,7 @@
+ @pytest.mark.asyncio
+ async def async_coro(loop):
+-    await asyncio.sleep(0, loop=loop)
++    await asyncio.sleep(0)
+     return 'ok'
+@@ -27,8 +27,7 @@ async def closer(_, writer):
+         writer.close()
+     server1 = await asyncio.start_server(closer, host='localhost',
+-                                         port=unused_tcp_port,
+-                                         loop=event_loop)
++                                         port=unused_tcp_port)
+     server1.close()
+     await server1.wait_closed()
+@@ -45,20 +44,16 @@ async def closer(_, writer):
+     async def run_test():
+         server1 = await asyncio.start_server(closer, host='localhost',
+-                                             port=port1,
+-                                             loop=event_loop)
++                                             port=port1)
+         server2 = await asyncio.start_server(closer, host='localhost',
+-                                             port=port2,
+-                                             loop=event_loop)
++                                             port=port2)
+         server3 = await asyncio.start_server(closer, host='localhost',
+-                                             port=port3,
+-                                             loop=event_loop)
++                                             port=port3)
+         for port in port1, port2, port3:
+             with pytest.raises(IOError):
+                 await asyncio.start_server(closer, host='localhost',
+-                                           port=port,
+-                                           loop=event_loop)
++                                           port=port)
+         server1.close()
+         await server1.wait_closed()
+diff --git a/tests/test_subprocess.py b/tests/test_subprocess.py
+index 83490e8..069c6c2 100644
+--- a/tests/test_subprocess.py
++++ b/tests/test_subprocess.py
+@@ -21,8 +21,7 @@ def event_loop():
+ async def test_subprocess(event_loop):
+     """Starting a subprocess should be possible."""
+     proc = await asyncio.subprocess.create_subprocess_exec(
+-        sys.executable, '--version', stdout=asyncio.subprocess.PIPE,
+-        loop=event_loop)
++        sys.executable, '--version', stdout=asyncio.subprocess.PIPE)
+     await proc.communicate()
+@@ -30,6 +29,5 @@ async def test_subprocess(event_loop):
+ async def test_subprocess_forbid(event_loop):
+     """Starting a subprocess should be possible."""
+     proc = await asyncio.subprocess.create_subprocess_exec(
+-        sys.executable, '--version', stdout=asyncio.subprocess.PIPE,
+-        loop=event_loop)
++        sys.executable, '--version', stdout=asyncio.subprocess.PIPE)
+     await proc.communicate()
index e2189976b477ae0058d304e717abf0864fb71ff7..e56c6cce8a45c6dc9261bb3a0c0e93b6f66931ad 100644 (file)
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_COMPAT=( python3_{6,7,8} )
 inherit distutils-r1
 
 DESCRIPTION="Library for testing asyncio code with pytest"
@@ -27,6 +27,10 @@ DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
                >=dev-python/hypothesis-3.64[${PYTHON_USEDEP}]
        )"
 
+PATCHES=(
+       "${FILESDIR}"/pytest-asyncio-0.10.0-py38.patch
+)
+
 python_test() {
        distutils_install_for_testing
        pytest -vv || die "Tests fail with ${EPYTHON}"