Bug 1969110

Summary: F35FailsToInstall: python3-pytest-mpi
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: python-pytest-mpiAssignee: Orion Poplawski <orion>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: orion, thrnciar, zbyszek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-pytest-mpi-0.5-1.fc35 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-06-09 13:33:16 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1908278    
Bug Blocks: 1927313, 1890881, 1968818    

Description Miro Hrončok 2021-06-07 23:45:41 UTC
Hello,

Please note that this comment was generated automatically. If you feel that this output has mistakes, please contact me via email (mhroncok).

Your package (python-pytest-mpi) Fails To Install in Fedora 35:

can't install python3-pytest-mpi:
  - nothing provides python3.9dist(pytest) needed by python3-pytest-mpi-0.4-4.fc34.noarch
  - nothing provides python(abi) = 3.9 needed by python3-pytest-mpi-0.4-4.fc34.noarch
  
If you know about this problem and are planning on fixing it, please acknowledge so by setting the bug status to ASSIGNED. If you don't have time to maintain this package, consider orphaning it, so maintainers of dependent packages realize the problem.


If you don't react accordingly to the policy for FTBFS/FTI bugs (https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/), your package may be orphaned in 8+ weeks.

P.S. The data was generated solely from koji buildroot, so it might be newer than the latest compose or the content on mirrors.

P.P.S. If this bug has been reported in the middle of upgrading multiple dependent packages, please consider using side tags: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/#updating-inter-dependent-packages

Thanks!

Comment 1 Miro Hrončok 2021-06-07 23:54:27 UTC
This bugzilla is likely a fallout from the Python 3.10 rebuild.

If your package (or some of the dependencies it has) failed to rebuild during the Python 3.10 rebuild, they now fail to install. To fix this, packages need to be rebuilt in Rawhide.

We will slowly triage the bugzillas, but we'd appreciate your help.

If you know this is blocked by an existing reported build failure or another package not yet rebuilt with Python 3.10, please mark it as such by using the "Depends On"/"Blocks" bugzilla fields. That will help us determine what failures to prioritize.

Thank you and sorry for the inconvenience. Let me know if you need any help.

Comment 2 Zbigniew Jędrzejewski-Szmek 2021-06-09 09:36:00 UTC
Now that sybil is built:

+ py.test-3.10 -p pytester --runpytest=subprocess -vv
============================= test session starts ==============================
platform linux -- Python 3.10.0b2, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /builddir/build/BUILD/pytest-mpi-0.4
plugins: mpi-0+unknown
collecting ... collected 13 items
docs/markers.rst::line:14,column:1 PASSED                                [  7%]
docs/usage.rst::line:16,column:1 PASSED                                  [ 15%]
docs/usage.rst::line:28,column:1 PASSED                                  [ 23%]
tests/test_fixtures.py::test_mpi_file_name ERROR                         [ 30%]
tests/test_fixtures.py::test_mpi_tmpdir ERROR                            [ 38%]
tests/test_fixtures.py::test_mpi_tmp_path ERROR                          [ 46%]
tests/test_markers.py::test_mpi PASSED                                   [ 53%]
tests/test_markers.py::test_mpi_with_mpi ERROR                           [ 61%]
tests/test_markers.py::test_mpi_only_mpi ERROR                           [ 69%]
tests/test_markers.py::test_mpi_skip PASSED                              [ 76%]
tests/test_markers.py::test_mpi_skip_under_mpi ERROR                     [ 84%]
tests/test_markers.py::test_mpi_xfail PASSED                             [ 92%]
tests/test_markers.py::test_mpi_xfail_under_mpi ERROR                    [100%]
==================================== ERRORS ====================================
_____________________ ERROR at setup of test_mpi_file_name _____________________
request = <SubRequest 'mpi_testdir' for <Function test_mpi_file_name>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=None))
    @pytest.fixture
    def mpi_testdir(request, tmpdir_factory):
>       return MPITestdir(request, tmpdir_factory)
tests/conftest.py:57: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <[AttributeError("'MPITestdir' object has no attribute '_pytester'") raised in repr()] MPITestdir object at 0xf6e07af0>
request = <SubRequest 'mpi_testdir' for <Function test_mpi_file_name>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=None))
    def __init__(self, request, tmpdir_factory):
>       super().__init__(request, tmpdir_factory)
E       TypeError: Testdir.__init__() takes 2 positional arguments but 3 were given
tests/conftest.py:22: TypeError
______________________ ERROR at setup of test_mpi_tmpdir _______________________
request = <SubRequest 'mpi_testdir' for <Function test_mpi_tmpdir>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=None))
    @pytest.fixture
    def mpi_testdir(request, tmpdir_factory):
>       return MPITestdir(request, tmpdir_factory)
tests/conftest.py:57: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <[AttributeError("'MPITestdir' object has no attribute '_pytester'") raised in repr()] MPITestdir object at 0xf6d9ca00>
request = <SubRequest 'mpi_testdir' for <Function test_mpi_tmpdir>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=None))
    def __init__(self, request, tmpdir_factory):
>       super().__init__(request, tmpdir_factory)
E       TypeError: Testdir.__init__() takes 2 positional arguments but 3 were given
tests/conftest.py:22: TypeError
_____________________ ERROR at setup of test_mpi_tmp_path ______________________
request = <SubRequest 'mpi_testdir' for <Function test_mpi_tmp_path>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=None))
    @pytest.fixture
    def mpi_testdir(request, tmpdir_factory):
>       return MPITestdir(request, tmpdir_factory)
tests/conftest.py:57: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <[AttributeError("'MPITestdir' object has no attribute '_pytester'") raised in repr()] MPITestdir object at 0xf6d9c958>
request = <SubRequest 'mpi_testdir' for <Function test_mpi_tmp_path>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=None))
    def __init__(self, request, tmpdir_factory):
>       super().__init__(request, tmpdir_factory)
E       TypeError: Testdir.__init__() takes 2 positional arguments but 3 were given
tests/conftest.py:22: TypeError
_____________________ ERROR at setup of test_mpi_with_mpi ______________________
request = <SubRequest 'mpi_testdir' for <Function test_mpi_with_mpi>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0')))
    @pytest.fixture
    def mpi_testdir(request, tmpdir_factory):
>       return MPITestdir(request, tmpdir_factory)
tests/conftest.py:57: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <[AttributeError("'MPITestdir' object has no attribute '_pytester'") raised in repr()] MPITestdir object at 0xf6d9c088>
request = <SubRequest 'mpi_testdir' for <Function test_mpi_with_mpi>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0')))
    def __init__(self, request, tmpdir_factory):
>       super().__init__(request, tmpdir_factory)
E       TypeError: Testdir.__init__() takes 2 positional arguments but 3 were given
tests/conftest.py:22: TypeError
_____________________ ERROR at setup of test_mpi_only_mpi ______________________
request = <SubRequest 'mpi_testdir' for <Function test_mpi_only_mpi>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0')))
    @pytest.fixture
    def mpi_testdir(request, tmpdir_factory):
>       return MPITestdir(request, tmpdir_factory)
tests/conftest.py:57: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <[AttributeError("'MPITestdir' object has no attribute '_pytester'") raised in repr()] MPITestdir object at 0xf6d60130>
request = <SubRequest 'mpi_testdir' for <Function test_mpi_only_mpi>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0')))
    def __init__(self, request, tmpdir_factory):
>       super().__init__(request, tmpdir_factory)
E       TypeError: Testdir.__init__() takes 2 positional arguments but 3 were given
tests/conftest.py:22: TypeError
__________________ ERROR at setup of test_mpi_skip_under_mpi ___________________
request = <SubRequest 'mpi_testdir' for <Function test_mpi_skip_under_mpi>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0')))
    @pytest.fixture
    def mpi_testdir(request, tmpdir_factory):
>       return MPITestdir(request, tmpdir_factory)
tests/conftest.py:57: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <[AttributeError("'MPITestdir' object has no attribute '_pytester'") raised in repr()] MPITestdir object at 0xf6d60fa0>
request = <SubRequest 'mpi_testdir' for <Function test_mpi_skip_under_mpi>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0')))
    def __init__(self, request, tmpdir_factory):
>       super().__init__(request, tmpdir_factory)
E       TypeError: Testdir.__init__() takes 2 positional arguments but 3 were given
tests/conftest.py:22: TypeError
__________________ ERROR at setup of test_mpi_xfail_under_mpi __________________
request = <SubRequest 'mpi_testdir' for <Function test_mpi_xfail_under_mpi>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0')))
    @pytest.fixture
    def mpi_testdir(request, tmpdir_factory):
>       return MPITestdir(request, tmpdir_factory)
tests/conftest.py:57: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <[AttributeError("'MPITestdir' object has no attribute '_pytester'") raised in repr()] MPITestdir object at 0xf6d60838>
request = <SubRequest 'mpi_testdir' for <Function test_mpi_xfail_under_mpi>>
tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0xf6ea7ce8>, _basetemp=PosixPath('/tmp/pytest-of-mockbuild/pytest-0')))
    def __init__(self, request, tmpdir_factory):
>       super().__init__(request, tmpdir_factory)
E       TypeError: Testdir.__init__() takes 2 positional arguments but 3 were given
tests/conftest.py:22: TypeError
=============================== warnings summary ===============================
../../../../usr/lib/python3.10/site-packages/sybil/integration/pytest.py:58
../../../../usr/lib/python3.10/site-packages/sybil/integration/pytest.py:58
../../../../usr/lib/python3.10/site-packages/sybil/integration/pytest.py:58
  /usr/lib/python3.10/site-packages/sybil/integration/pytest.py:58: PytestDeprecationWarning: A private pytest class or function was used.
    self._request = fixtures.FixtureRequest(self)
-- Docs: https://docs.pytest.org/en/stable/warnings.html
=========================== short test summary info ============================
ERROR tests/test_fixtures.py::test_mpi_file_name - TypeError: Testdir.__init_...
ERROR tests/test_fixtures.py::test_mpi_tmpdir - TypeError: Testdir.__init__()...
ERROR tests/test_fixtures.py::test_mpi_tmp_path - TypeError: Testdir.__init__...
ERROR tests/test_markers.py::test_mpi_with_mpi - TypeError: Testdir.__init__(...
ERROR tests/test_markers.py::test_mpi_only_mpi - TypeError: Testdir.__init__(...
ERROR tests/test_markers.py::test_mpi_skip_under_mpi - TypeError: Testdir.__i...
ERROR tests/test_markers.py::test_mpi_xfail_under_mpi - TypeError: Testdir.__...
=================== 6 passed, 3 warnings, 7 errors in 0.79s ====================

Comment 3 Miro Hrončok 2021-06-09 10:11:11 UTC
Testdir's __init__ indeed is:

def __init__(self, pytester: Pytester, *, _ispytest: bool = False) -> None:



So there is no way MPITestdir could call:

super().__init__(request, tmpdir_factory)



I don't understand why this ever worked.

See https://github.com/aragilar/pytest-mpi/commit/d081a8cbf4071e0e5ef2fefb4f0365a5e29c052a

Comment 4 Miro Hrončok 2021-06-09 10:13:44 UTC
OK, this is apparently pytest 6 related and this package is not tracked in Koschei, hence we never realized the problem until now.

Comment 5 Orion Poplawski 2021-06-09 13:33:16 UTC
Built now with 0.5, so should be fixed.