guix/gnu/packages/patches/python-pytest-asyncio-python-3.8.patch
Maxim Cournoyer b1ef8b410c
gnu: python-pytest-asyncio: Enable tests and patch for Python 3.8.
* gnu/packages/patches/python-pytest-asyncio-python-3.8.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/check.scm (python-pytest-asyncio)
[source]: Fetch from git and apply above patch.
[phases]: Override the check phase, enabling tests.
2021-08-29 01:05:28 -04:00

239 lines
8.2 KiB
Diff

# Modified to apply on 0.10.0.
From c7a111180b3f35f2fe5a07ead185e4e792f9dfa0 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/.travis.yml b/.travis.yml
index fe90234..b93377a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,5 @@
language: python
+
matrix:
include:
- python: 3.5
@@ -7,10 +8,8 @@ matrix:
env: TOX_ENV=py36
- python: 3.7
env: TOX_ENV=py37
- # TODO: the dist and sudo keys are currently needed to use Python 3.7.
- # They should be removed once Travis-CI supports 3.7 on the default image.
- dist: xenial
- sudo: true
+ - python: 3.8
+ env: TOX_ENV=py38
install: pip install tox-travis coveralls
diff --git a/setup.py b/setup.py
index 18566bf..6175711 100644
--- a/setup.py
+++ b/setup.py
@@ -36,6 +36,7 @@ def find_version():
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
+ "Programming Language :: Python :: 3.8",
"Topic :: Software Development :: Testing",
"Framework :: Pytest",
],
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()
diff --git a/tox.ini b/tox.ini
index 13d5155..eed6fb6 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,6 +1,7 @@
[tox]
-envlist = py35, py36, py37
-minversion = 2.5.0
+minversion = 3.14.0
+envlist = py35, py36, py37, py38
+skip_missing_interpreters = true
[testenv]
extras = testing