Hello, I'm trying to package this for NixOS, and I got these errors:
============================= test session starts ==============================
platform linux -- Python 3.12.4, pytest-8.2.2, pluggy-1.5.0
rootdir: /build/source
plugins: mpi-0.6
collected 13 items
docs/markers.rst . [ 7%]
docs/usage.rst .. [ 23%]
tests/test_fixtures.py FFF [ 46%]
tests/test_markers.py .FF.F.F [100%]
=================================== FAILURES ===================================
______________________________ test_mpi_file_name ______________________________
mpi_testdir = <conftest.MPITestdir object at 0x7ffff66dcbc0>, has_mpi4py = False
def test_mpi_file_name(mpi_testdir, has_mpi4py):
mpi_testdir.makepyfile(MPI_FILE_NAME_TEST_CODE)
result = mpi_testdir.runpytest("--with-mpi", timeout=5)
if has_mpi4py:
result.assert_outcomes(passed=1)
else:
> result.assert_outcomes(**_fix_plural(errors=1))
/build/source/tests/test_fixtures.py:61:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:568: in parseoutcomes
return self.parse_summary_nouns(self.outlines)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls = <class '_pytest.pytester.RunResult'>, lines = []
@classmethod
def parse_summary_nouns(cls, lines) -> Dict[str, int]:
"""Extract the nouns from a pytest terminal summary line.
It always returns the plural noun for consistency::
======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ====
Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``.
"""
for line in reversed(lines):
if rex_session_duration.search(line):
outcomes = rex_outcome.findall(line)
ret = {noun: int(count) for (count, noun) in outcomes}
break
else:
> raise ValueError("Pytest terminal summary report not found")
E ValueError: Pytest terminal summary report not found
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:586: ValueError
------------------------------ Captured log setup ------------------------------
WARNING conftest:conftest.py:34 To run the MPI tests, you need to use subprocesses
----------------------------- Captured stdout call -----------------------------
running: mpirun -n 2 /nix/store/z7xxy35k7620hs6fn6la5fg2lgklv72l-python3-3.12.4/bin/python3.12 -mpytest --basetemp=/build/pytest-of-nixbld/pytest-0/test_mpi_file_name0/runpytest-0 --with-mpi
in: /build/pytest-of-nixbld/pytest-0/test_mpi_file_name0
----------------------------- Captured stderr call -----------------------------
hwloc/linux: failed to find sysfs cpu topology directory, aborting linux discovery.
--------------------------------------------------------------------------
The value of the MCA parameter "plm_rsh_agent" was set to a path
that could not be found:
plm_rsh_agent: ssh : rsh
Please either unset the parameter, or check that the path is correct
--------------------------------------------------------------------------
[localhost:00143] [[INVALID],INVALID] FORCE-TERMINATE AT Not found:-13 - error plm_rsh_component.c(335)
_______________________________ test_mpi_tmpdir ________________________________
mpi_testdir = <conftest.MPITestdir object at 0x7ffff66df770>, has_mpi4py = False
def test_mpi_tmpdir(mpi_testdir, has_mpi4py):
mpi_testdir.makepyfile(MPI_TMPDIR_TEST_CODE)
result = mpi_testdir.runpytest("--with-mpi", timeout=5)
if has_mpi4py:
result.assert_outcomes(passed=1)
else:
> result.assert_outcomes(**_fix_plural(errors=1))
/build/source/tests/test_fixtures.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:568: in parseoutcomes
return self.parse_summary_nouns(self.outlines)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls = <class '_pytest.pytester.RunResult'>, lines = []
@classmethod
def parse_summary_nouns(cls, lines) -> Dict[str, int]:
"""Extract the nouns from a pytest terminal summary line.
It always returns the plural noun for consistency::
======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ====
Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``.
"""
for line in reversed(lines):
if rex_session_duration.search(line):
outcomes = rex_outcome.findall(line)
ret = {noun: int(count) for (count, noun) in outcomes}
break
else:
> raise ValueError("Pytest terminal summary report not found")
E ValueError: Pytest terminal summary report not found
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:586: ValueError
------------------------------ Captured log setup ------------------------------
WARNING conftest:conftest.py:34 To run the MPI tests, you need to use subprocesses
----------------------------- Captured stdout call -----------------------------
running: mpirun -n 2 /nix/store/z7xxy35k7620hs6fn6la5fg2lgklv72l-python3-3.12.4/bin/python3.12 -mpytest --basetemp=/build/pytest-of-nixbld/pytest-0/test_mpi_tmpdir0/runpytest-0 --with-mpi
in: /build/pytest-of-nixbld/pytest-0/test_mpi_tmpdir0
----------------------------- Captured stderr call -----------------------------
hwloc/linux: failed to find sysfs cpu topology directory, aborting linux discovery.
--------------------------------------------------------------------------
The value of the MCA parameter "plm_rsh_agent" was set to a path
that could not be found:
plm_rsh_agent: ssh : rsh
Please either unset the parameter, or check that the path is correct
--------------------------------------------------------------------------
[localhost:00144] [[INVALID],INVALID] FORCE-TERMINATE AT Not found:-13 - error plm_rsh_component.c(335)
______________________________ test_mpi_tmp_path _______________________________
mpi_testdir = <conftest.MPITestdir object at 0x7ffff656f890>, has_mpi4py = False
def test_mpi_tmp_path(mpi_testdir, has_mpi4py):
mpi_testdir.makepyfile(MPI_TMP_PATH_TEST_CODE)
result = mpi_testdir.runpytest("--with-mpi", timeout=5)
if has_mpi4py:
result.assert_outcomes(passed=1)
else:
> result.assert_outcomes(**_fix_plural(errors=1))
/build/source/tests/test_fixtures.py:83:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:568: in parseoutcomes
return self.parse_summary_nouns(self.outlines)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls = <class '_pytest.pytester.RunResult'>, lines = []
@classmethod
def parse_summary_nouns(cls, lines) -> Dict[str, int]:
"""Extract the nouns from a pytest terminal summary line.
It always returns the plural noun for consistency::
======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ====
Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``.
"""
for line in reversed(lines):
if rex_session_duration.search(line):
outcomes = rex_outcome.findall(line)
ret = {noun: int(count) for (count, noun) in outcomes}
break
else:
> raise ValueError("Pytest terminal summary report not found")
E ValueError: Pytest terminal summary report not found
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:586: ValueError
------------------------------ Captured log setup ------------------------------
WARNING conftest:conftest.py:34 To run the MPI tests, you need to use subprocesses
----------------------------- Captured stdout call -----------------------------
running: mpirun -n 2 /nix/store/z7xxy35k7620hs6fn6la5fg2lgklv72l-python3-3.12.4/bin/python3.12 -mpytest --basetemp=/build/pytest-of-nixbld/pytest-0/test_mpi_tmp_path0/runpytest-0 --with-mpi
in: /build/pytest-of-nixbld/pytest-0/test_mpi_tmp_path0
----------------------------- Captured stderr call -----------------------------
hwloc/linux: failed to find sysfs cpu topology directory, aborting linux discovery.
--------------------------------------------------------------------------
The value of the MCA parameter "plm_rsh_agent" was set to a path
that could not be found:
plm_rsh_agent: ssh : rsh
Please either unset the parameter, or check that the path is correct
--------------------------------------------------------------------------
[localhost:00145] [[INVALID],INVALID] FORCE-TERMINATE AT Not found:-13 - error plm_rsh_component.c(335)
______________________________ test_mpi_with_mpi _______________________________
mpi_testdir = <conftest.MPITestdir object at 0x7ffff64a0080>, has_mpi4py = False
def test_mpi_with_mpi(mpi_testdir, has_mpi4py):
mpi_testdir.makepyfile(MPI_TEST_CODE)
result = mpi_testdir.runpytest("--with-mpi")
if has_mpi4py:
result.assert_outcomes(**_fix_plural(passed=3, errors=1, skipped=1))
else:
> result.assert_outcomes(**_fix_plural(passed=1, errors=4))
/build/source/tests/test_markers.py:74:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:568: in parseoutcomes
return self.parse_summary_nouns(self.outlines)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls = <class '_pytest.pytester.RunResult'>, lines = []
@classmethod
def parse_summary_nouns(cls, lines) -> Dict[str, int]:
"""Extract the nouns from a pytest terminal summary line.
It always returns the plural noun for consistency::
======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ====
Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``.
"""
for line in reversed(lines):
if rex_session_duration.search(line):
outcomes = rex_outcome.findall(line)
ret = {noun: int(count) for (count, noun) in outcomes}
break
else:
> raise ValueError("Pytest terminal summary report not found")
E ValueError: Pytest terminal summary report not found
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:586: ValueError
------------------------------ Captured log setup ------------------------------
WARNING conftest:conftest.py:34 To run the MPI tests, you need to use subprocesses
----------------------------- Captured stdout call -----------------------------
running: mpirun -n 2 /nix/store/z7xxy35k7620hs6fn6la5fg2lgklv72l-python3-3.12.4/bin/python3.12 -mpytest --basetemp=/build/pytest-of-nixbld/pytest-0/test_mpi_with_mpi0/runpytest-0 --with-mpi
in: /build/pytest-of-nixbld/pytest-0/test_mpi_with_mpi0
----------------------------- Captured stderr call -----------------------------
hwloc/linux: failed to find sysfs cpu topology directory, aborting linux discovery.
--------------------------------------------------------------------------
The value of the MCA parameter "plm_rsh_agent" was set to a path
that could not be found:
plm_rsh_agent: ssh : rsh
Please either unset the parameter, or check that the path is correct
--------------------------------------------------------------------------
[localhost:00146] [[INVALID],INVALID] FORCE-TERMINATE AT Not found:-13 - error plm_rsh_component.c(335)
______________________________ test_mpi_only_mpi _______________________________
mpi_testdir = <conftest.MPITestdir object at 0x7ffff66bfd70>, has_mpi4py = False
def test_mpi_only_mpi(mpi_testdir, has_mpi4py):
mpi_testdir.makepyfile(MPI_TEST_CODE)
result = mpi_testdir.runpytest("--only-mpi")
if has_mpi4py:
result.assert_outcomes(**_fix_plural(passed=2, errors=1, skipped=2))
else:
> result.assert_outcomes(**_fix_plural(errors=4, skipped=1))
/build/source/tests/test_markers.py:85:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:568: in parseoutcomes
return self.parse_summary_nouns(self.outlines)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls = <class '_pytest.pytester.RunResult'>, lines = []
@classmethod
def parse_summary_nouns(cls, lines) -> Dict[str, int]:
"""Extract the nouns from a pytest terminal summary line.
It always returns the plural noun for consistency::
======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ====
Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``.
"""
for line in reversed(lines):
if rex_session_duration.search(line):
outcomes = rex_outcome.findall(line)
ret = {noun: int(count) for (count, noun) in outcomes}
break
else:
> raise ValueError("Pytest terminal summary report not found")
E ValueError: Pytest terminal summary report not found
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:586: ValueError
------------------------------ Captured log setup ------------------------------
WARNING conftest:conftest.py:34 To run the MPI tests, you need to use subprocesses
----------------------------- Captured stdout call -----------------------------
running: mpirun -n 2 /nix/store/z7xxy35k7620hs6fn6la5fg2lgklv72l-python3-3.12.4/bin/python3.12 -mpytest --basetemp=/build/pytest-of-nixbld/pytest-0/test_mpi_only_mpi0/runpytest-0 --only-mpi
in: /build/pytest-of-nixbld/pytest-0/test_mpi_only_mpi0
----------------------------- Captured stderr call -----------------------------
hwloc/linux: failed to find sysfs cpu topology directory, aborting linux discovery.
--------------------------------------------------------------------------
The value of the MCA parameter "plm_rsh_agent" was set to a path
that could not be found:
plm_rsh_agent: ssh : rsh
Please either unset the parameter, or check that the path is correct
--------------------------------------------------------------------------
[localhost:00147] [[INVALID],INVALID] FORCE-TERMINATE AT Not found:-13 - error plm_rsh_component.c(335)
___________________________ test_mpi_skip_under_mpi ____________________________
mpi_testdir = <conftest.MPITestdir object at 0x7ffff6481490>
def test_mpi_skip_under_mpi(mpi_testdir):
mpi_testdir.makepyfile(MPI_SKIP_TEST_CODE)
result = mpi_testdir.runpytest("--with-mpi")
> result.assert_outcomes(skipped=1)
/build/source/tests/test_markers.py:101:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:568: in parseoutcomes
return self.parse_summary_nouns(self.outlines)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls = <class '_pytest.pytester.RunResult'>, lines = []
@classmethod
def parse_summary_nouns(cls, lines) -> Dict[str, int]:
"""Extract the nouns from a pytest terminal summary line.
It always returns the plural noun for consistency::
======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ====
Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``.
"""
for line in reversed(lines):
if rex_session_duration.search(line):
outcomes = rex_outcome.findall(line)
ret = {noun: int(count) for (count, noun) in outcomes}
break
else:
> raise ValueError("Pytest terminal summary report not found")
E ValueError: Pytest terminal summary report not found
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:586: ValueError
------------------------------ Captured log setup ------------------------------
WARNING conftest:conftest.py:34 To run the MPI tests, you need to use subprocesses
----------------------------- Captured stdout call -----------------------------
running: mpirun -n 2 /nix/store/z7xxy35k7620hs6fn6la5fg2lgklv72l-python3-3.12.4/bin/python3.12 -mpytest --basetemp=/build/pytest-of-nixbld/pytest-0/test_mpi_skip_under_mpi0/runpytest-0 --with-mpi
in: /build/pytest-of-nixbld/pytest-0/test_mpi_skip_under_mpi0
----------------------------- Captured stderr call -----------------------------
hwloc/linux: failed to find sysfs cpu topology directory, aborting linux discovery.
--------------------------------------------------------------------------
The value of the MCA parameter "plm_rsh_agent" was set to a path
that could not be found:
plm_rsh_agent: ssh : rsh
Please either unset the parameter, or check that the path is correct
--------------------------------------------------------------------------
[localhost:00148] [[INVALID],INVALID] FORCE-TERMINATE AT Not found:-13 - error plm_rsh_component.c(335)
___________________________ test_mpi_xfail_under_mpi ___________________________
mpi_testdir = <conftest.MPITestdir object at 0x7ffff64d38f0>, has_mpi4py = False
def test_mpi_xfail_under_mpi(mpi_testdir, has_mpi4py):
mpi_testdir.makepyfile(MPI_XFAIL_TEST_CODE)
result = mpi_testdir.runpytest("--with-mpi")
if has_mpi4py:
result.assert_outcomes(xfailed=1)
else:
> result.assert_outcomes(xpassed=1)
/build/source/tests/test_markers.py:120:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:568: in parseoutcomes
return self.parse_summary_nouns(self.outlines)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls = <class '_pytest.pytester.RunResult'>, lines = []
@classmethod
def parse_summary_nouns(cls, lines) -> Dict[str, int]:
"""Extract the nouns from a pytest terminal summary line.
It always returns the plural noun for consistency::
======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ====
Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``.
"""
for line in reversed(lines):
if rex_session_duration.search(line):
outcomes = rex_outcome.findall(line)
ret = {noun: int(count) for (count, noun) in outcomes}
break
else:
> raise ValueError("Pytest terminal summary report not found")
E ValueError: Pytest terminal summary report not found
/nix/store/6m4rxk7rn1ncads8mfjp55hxphzyfr2j-python3.12-pytest-8.2.2/lib/python3.12/site-packages/_pytest/pytester.py:586: ValueError
------------------------------ Captured log setup ------------------------------
WARNING conftest:conftest.py:34 To run the MPI tests, you need to use subprocesses
----------------------------- Captured stdout call -----------------------------
running: mpirun -n 2 /nix/store/z7xxy35k7620hs6fn6la5fg2lgklv72l-python3-3.12.4/bin/python3.12 -mpytest --basetemp=/build/pytest-of-nixbld/pytest-0/test_mpi_xfail_under_mpi0/runpytest-0 --with-mpi
in: /build/pytest-of-nixbld/pytest-0/test_mpi_xfail_under_mpi0
----------------------------- Captured stderr call -----------------------------
hwloc/linux: failed to find sysfs cpu topology directory, aborting linux discovery.
--------------------------------------------------------------------------
The value of the MCA parameter "plm_rsh_agent" was set to a path
that could not be found:
plm_rsh_agent: ssh : rsh
Please either unset the parameter, or check that the path is correct
--------------------------------------------------------------------------
[localhost:00149] [[INVALID],INVALID] FORCE-TERMINATE AT Not found:-13 - error plm_rsh_component.c(335)
=============================== warnings summary ===============================
tests/test_fixtures.py::test_mpi_file_name
tests/test_fixtures.py::test_mpi_tmpdir
tests/test_fixtures.py::test_mpi_tmp_path
tests/test_markers.py::test_mpi_with_mpi
tests/test_markers.py::test_mpi_only_mpi
tests/test_markers.py::test_mpi_skip_under_mpi
tests/test_markers.py::test_mpi_xfail_under_mpi
/build/source/tests/conftest.py:34: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
log.warn("To run the MPI tests, you need to use subprocesses")
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_fixtures.py::test_mpi_file_name - ValueError: Pytest terminal summary report not found
FAILED tests/test_fixtures.py::test_mpi_tmpdir - ValueError: Pytest terminal summary report not found
FAILED tests/test_fixtures.py::test_mpi_tmp_path - ValueError: Pytest terminal summary report not found
FAILED tests/test_markers.py::test_mpi_with_mpi - ValueError: Pytest terminal summary report not found
FAILED tests/test_markers.py::test_mpi_only_mpi - ValueError: Pytest terminal summary report not found
FAILED tests/test_markers.py::test_mpi_skip_under_mpi - ValueError: Pytest terminal summary report not found
FAILED tests/test_markers.py::test_mpi_xfail_under_mpi - ValueError: Pytest terminal summary report not found
=================== 7 failed, 6 passed, 7 warnings in 1.59s ====================
/nix/store/5r0df66ikad3xw06azlqvswcvncll8wa-stdenv-linux/setup: line 1641: pop_var_context: head of shell_variables not a function context
Did I understand correctly that mpi4py is a dependency for the tests? Because this issue of it prevents me from packaging it and using it as well with our openmpi 4/5.
Hello, I'm trying to package this for NixOS, and I got these errors:
Did I understand correctly that mpi4py is a dependency for the tests? Because this issue of it prevents me from packaging it and using it as well with our openmpi 4/5.