# 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