Move compat tests to a single file using testdir

This avoids having to resort to skipping modules in conftest.py file and avoids flake8 errors
This commit is contained in:
Bruno Oliveira 2016-12-13 21:28:07 -02:00
parent 3a59acf69f
commit 45eb9b566c
4 changed files with 37 additions and 34 deletions

View File

@ -1,7 +0,0 @@
import sys
collect_ignore = []
if sys.version_info[0] < 3:
collect_ignore.append("test_compat_3.py")
if sys.version_info < (3, 5):
collect_ignore.append("test_compat_35.py")

View File

@ -1,3 +1,6 @@
import sys
import pytest
from _pytest.compat import is_generator
@ -10,3 +13,37 @@ def test_is_generator():
assert is_generator(zap)
assert not is_generator(foo)
def test_is_generator_asyncio(testdir):
pytest.importorskip('asyncio')
testdir.makepyfile("""
from _pytest.compat import is_generator
import asyncio
@asyncio.coroutine
def baz():
yield from [1,2,3]
def test_is_generator_asyncio():
assert not is_generator(baz)
""")
result = testdir.runpytest()
result.stdout.fnmatch_lines(['*1 passed*'])
@pytest.mark.skipif(sys.version_info < (3, 5), reason='async syntax available in Python 3.5+')
def test_is_generator_async_syntax(testdir):
testdir.makepyfile("""
from _pytest.compat import is_generator
def test_is_generator_py35():
async def foo():
await foo()
async def bar():
pass
assert not is_generator(foo)
assert not is_generator(bar)
""")
result = testdir.runpytest()
result.stdout.fnmatch_lines(['*1 passed*'])

View File

@ -1,15 +0,0 @@
import pytest
from _pytest.compat import is_generator
try:
import asyncio
except ImportError:
asyncio = None
@pytest.mark.skipif(asyncio is None, reason='asyncio is not installed')
def test_is_generator():
@asyncio.coroutine
def baz():
yield from [1,2,3]
assert not is_generator(baz)

View File

@ -1,12 +0,0 @@
from _pytest.compat import is_generator
def test_is_generator_py35():
async def foo():
await foo()
async def bar():
pass
assert not is_generator(foo)
assert not is_generator(bar)