Bug 1969110 - F35FailsToInstall: python3-pytest-mpi
Summary: F35FailsToInstall: python3-pytest-mpi
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-pytest-mpi
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Orion Poplawski
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1908278
Blocks: F35FailsToInstall PYTHON3.10 1968818
TreeView+ depends on / blocked
 
Reported: 2021-06-07 23:45 UTC by Miro Hrončok
Modified: 2021-06-09 13:33 UTC (History)
3 users (show)

Fixed In Version: python-pytest-mpi-0.5-1.fc35
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-06-09 13:33:16 UTC
Type: ---


Attachments (Terms of Use)

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@redhat.com).

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.


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