Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test on Python 3.8, drop 3.3 and 3.4 #152

Merged
merged 1 commit into from
Apr 12, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 3 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
language: python

matrix:
include:
- python: 3.5
Expand All @@ -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

Expand Down
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down
2 changes: 1 addition & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion tests/test_hypothesis_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ async def test_mark_and_parametrize(x, y):
@given(st.integers())
@pytest.mark.asyncio
async def test_can_use_fixture_provided_event_loop(event_loop, n):
semaphore = asyncio.Semaphore(value=0, loop=event_loop)
semaphore = asyncio.Semaphore(value=0)
event_loop.call_soon(semaphore.release)
await semaphore.acquire()
32 changes: 12 additions & 20 deletions tests/test_simple.py
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -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()
Expand All @@ -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()
Expand Down Expand Up @@ -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'


Expand Down
17 changes: 6 additions & 11 deletions tests/test_simple_35.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

@pytest.mark.asyncio
async def async_coro(loop):
await asyncio.sleep(0, loop=loop)
await asyncio.sleep(0)
return 'ok'


Expand All @@ -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()
Expand All @@ -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()
Expand Down
6 changes: 2 additions & 4 deletions tests/test_subprocess.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,13 @@ 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()


@pytest.mark.asyncio(forbid_global_loop=True)
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()
5 changes: 3 additions & 2 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -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
Expand Down