Bug 2059960 - python-pytest-cases fails to build with pytest 7 and breaks dependent packages
Summary: python-pytest-cases fails to build with pytest 7 and breaks dependent packages
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: python-pytest-cases
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Zbigniew Jędrzejewski-Szmek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F37FTBFS PYTEST7 2059957
TreeView+ depends on / blocked
 
Reported: 2022-03-02 12:04 UTC by Miro Hrončok
Modified: 2022-04-22 08:45 UTC (History)
2 users (show)

Fixed In Version: python-pytest-cases-3.6.11-1.fc37
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-04-22 08:45:28 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github smarie python-pytest-cases issues 241 0 None closed Refactored scope handling in pytest 7 2022-03-02 12:05:14 UTC
Github smarie python-pytest-cases pull 247 0 None Merged Feature/issues 243 plus 2022-03-02 12:05:14 UTC

Description Miro Hrončok 2022-03-02 12:04:35 UTC
In this copr repo, I have updated pytest to 7.0.1:

https://copr.fedorainfracloud.org/coprs/churchyard/pytest-7/

Based on this PR:

https://src.fedoraproject.org/rpms/pytest/pull-request/25

I'd like to update pytest to 7 in Fedora 37, but python-pytest-cases 3.6.1-3 fails to build.

https://copr.fedorainfracloud.org/coprs/churchyard/pytest-7/package/python-pytest-cases/

+ /usr/bin/python3 -m pytest -v --ignore pytest_cases/tests/pytest_extension/issues/test_issue_199.py --ignore pytest_cases/tests/pytest_extension/parametrize_plus/test_fixture_ref_basic1.py
Traceback (most recent call last):
  File "/builddir/build/BUILD/pytest-cases-3.6.1/pytest_cases/common_pytest.py", line 524, in <module>
    from _pytest.fixtures import scopes as pt_scopes
ImportError: cannot import name 'scopes' from '_pytest.fixtures' (/usr/lib/python3.10/site-packages/_pytest/fixtures.py)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib64/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib64/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/usr/lib/python3.10/site-packages/pytest/__main__.py", line 5, in <module>
    raise SystemExit(pytest.console_main())
  File "/usr/lib/python3.10/site-packages/_pytest/config/__init__.py", line 188, in console_main
    code = main()
  File "/usr/lib/python3.10/site-packages/_pytest/config/__init__.py", line 146, in main
    config = _prepareconfig(args, plugins)
  File "/usr/lib/python3.10/site-packages/_pytest/config/__init__.py", line 325, in _prepareconfig
    config = pluginmanager.hook.pytest_cmdline_parse(
  File "/usr/lib/python3.10/site-packages/pluggy/_hooks.py", line 265, in __call__
    return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
  File "/usr/lib/python3.10/site-packages/pluggy/_manager.py", line 80, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
  File "/usr/lib/python3.10/site-packages/pluggy/_callers.py", line 55, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.10/site-packages/_pytest/helpconfig.py", line 102, in pytest_cmdline_parse
    config: Config = outcome.get_result()
  File "/usr/lib/python3.10/site-packages/pluggy/_result.py", line 60, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.10/site-packages/pluggy/_callers.py", line 39, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.10/site-packages/_pytest/config/__init__.py", line 1013, in pytest_cmdline_parse
    self.parse(args)
  File "/usr/lib/python3.10/site-packages/_pytest/config/__init__.py", line 1301, in parse
    self._preparse(args, addopts=addopts)
  File "/usr/lib/python3.10/site-packages/_pytest/config/__init__.py", line 1184, in _preparse
    self.pluginmanager.load_setuptools_entrypoints("pytest11")
  File "/usr/lib/python3.10/site-packages/pluggy/_manager.py", line 287, in load_setuptools_entrypoints
    plugin = ep.load()
  File "/usr/lib64/python3.10/importlib/metadata/__init__.py", line 162, in load
    module = import_module(match.group('module'))
  File "/usr/lib64/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "/usr/lib/python3.10/site-packages/_pytest/assertion/rewrite.py", line 171, in exec_module
    exec(co, module.__dict__)
  File "/builddir/build/BUILD/pytest-cases-3.6.1/pytest_cases/__init__.py", line 11, in <module>
    from .fixture_core1_unions import fixture_union, NOT_USED, unpack_fixture, ignore_unused
  File "/usr/lib/python3.10/site-packages/_pytest/assertion/rewrite.py", line 171, in exec_module
    exec(co, module.__dict__)
  File "/builddir/build/BUILD/pytest-cases-3.6.1/pytest_cases/fixture_core1_unions.py", line 26, in <module>
    from .common_pytest import get_fixture_name, is_marked_parameter_value, get_marked_parameter_values, pytest_fixture, \
  File "/usr/lib/python3.10/site-packages/_pytest/assertion/rewrite.py", line 171, in exec_module
    exec(co, module.__dict__)
  File "/builddir/build/BUILD/pytest-cases-3.6.1/pytest_cases/common_pytest.py", line 527, in <module>
    from _pytest.python import scopes as pt_scopes, Metafunc  # noqa
ImportError: cannot import name 'scopes' from '_pytest.python' (/usr/lib/python3.10/site-packages/_pytest/python.py)


This is private pytest API. It should be fixed in https://github.com/smarie/python-pytest-cases/issues/241 https://github.com/smarie/python-pytest-cases/pull/247




There are several packages affected by this update, so I'd very much appreciate it if you could backport the fix.

Thanks!

Comment 1 Fedora Update System 2022-04-22 08:43:36 UTC
FEDORA-2022-1d5ffbd3f3 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-1d5ffbd3f3

Comment 2 Fedora Update System 2022-04-22 08:45:28 UTC
FEDORA-2022-1d5ffbd3f3 has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.