Bug 1701251

Summary: python3-pytest-asyncio: broken in rawhide due to pytest 4 update
Product: [Fedora] Fedora Reporter: Carl George <carlwgeorge>
Component: python3-pytest-asyncioAssignee: Julien Enselme <jujens>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: jujens, mhroncok
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python3-pytest-asyncio-0.10.0-1.fc31 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-04-18 19:06:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1671167, 1691128    

Description Carl George 2019-04-18 13:46:57 UTC
Description of problem:
Rawhide updated pytest to version 4.4.1, and now the pytest-asyncio plugin is broken.


Version-Release number of selected component (if applicable):
python3-pytest-4.4.1-1.fc31.noarch
python3-pytest-asyncio-0.9.0-2.fc30.noarch


Steps to Reproduce:
1. dnf install python3-pytest-asyncio
2. pytest-3 --trace-config | grep asyncio


Actual results:
Traceback (most recent call last):
  File "/usr/bin/pytest-3", line 11, in <module>
    load_entry_point('pytest==4.4.1', 'console_scripts', 'pytest')()
  File "/usr/lib/python3.7/site-packages/_pytest/config/__init__.py", line 60, in main
    config = _prepareconfig(args, plugins)
  File "/usr/lib/python3.7/site-packages/_pytest/config/__init__.py", line 201, in _prepareconfig
    pluginmanager=pluginmanager, args=args
  File "/usr/lib/python3.7/site-packages/pluggy/hooks.py", line 289, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.7/site-packages/pluggy/manager.py", line 68, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.7/site-packages/pluggy/manager.py", line 62, in <lambda>
    firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
  File "/usr/lib/python3.7/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.7/site-packages/_pytest/helpconfig.py", line 93, in pytest_cmdline_parse
    config = outcome.get_result()
  File "/usr/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.7/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.7/site-packages/_pytest/config/__init__.py", line 679, in pytest_cmdline_parse
    self.parse(args)
  File "/usr/lib/python3.7/site-packages/_pytest/config/__init__.py", line 896, in parse
    self._preparse(args, addopts=addopts)
  File "/usr/lib/python3.7/site-packages/_pytest/config/__init__.py", line 841, in _preparse
    self.pluginmanager.load_setuptools_entrypoints("pytest11")
  File "/usr/lib/python3.7/site-packages/pluggy/manager.py", line 274, in load_setuptools_entrypoints
    plugin = ep.load()
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2411, in load
    return self.resolve()
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2417, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 299, in load_module
    six.exec_(co, mod.__dict__)
  File "/usr/lib/python3.7/site-packages/pytest_asyncio/plugin.py", line 8, in <module>
    from _pytest.python import transfer_markers
ImportError: cannot import name 'transfer_markers' from '_pytest.python' (/usr/lib/python3.7/site-packages/_pytest/python.py)


Expected results:
PLUGIN registered: <module 'pytest_asyncio.plugin' from '/usr/lib/python3.7/site-packages/pytest_asyncio/plugin.py'>
  pytest-asyncio-0.9.0 at /usr/lib/python3.7/site-packages/pytest_asyncio/plugin.py
    asyncio             : /usr/lib/python3.7/site-packages/pytest_asyncio/plugin.py
plugins: asyncio-0.9.0


Additional info:
According to upstream, this is due to pytest 4.1.0 removing the transfer_marker API.  It's resolved upstream in 0.10.0.