Source: python-pytest-asyncio, pytest-mock Control: found -1 python-pytest-asyncio/0.18.1-1 Control: found -1 pytest-mock/3.6.1-1 Severity: serious Tags: sid bookworm User: debian...@lists.debian.org Usertags: breaks needs-update
Dear maintainer(s),With a recent upload of python-pytest-asyncio the autopkgtest of pytest-mock fails in testing when that autopkgtest is run with the binary packages of python-pytest-asyncio from unstable. It passes when run with only packages from testing. In tabular form:
pass fail python-pytest-asyncio from testing 0.18.1-1 pytest-mock from testing 3.6.1-1 all others from testing from testing I copied some of the output at the bottom of this report.Currently this regression is blocking the migration of python-pytest-asyncio to testing [1]. Due to the nature of this issue, I filed this bug report against both packages. Can you please investigate the situation and reassign the bug to the right package?
More information about this bug and the reason for filing it can be found on https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation Paul [1] https://qa.debian.org/excuses.php?package=python-pytest-asyncio https://ci.debian.net/data/autopkgtest/testing/amd64/p/pytest-mock/19680464/log.gz=================================== FAILURES =================================== ______________________________ test_plain_stopall ______________________________
testdir = <Testdir local('/tmp/pytest-of-debci/pytest-0/test_plain_stopall0')>
def test_plain_stopall(testdir: Any) -> None:"""patch.stopall() in a test should not cause an error during unconfigure (#137)"""
testdir.makepyfile( """ import random def get_random_number(): return random.randint(0, 100) def test_get_random_number(mocker):patcher = mocker.mock_module.patch("random.randint", lambda x, y: 5)
patcher.start() assert get_random_number() == 5 mocker.mock_module.patch.stopall() """ ) result = testdir.runpytest_subprocess()
result.stdout.fnmatch_lines("* 1 passed in *")
E Failed: nomatch: '* 1 passed in *'E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.10.2, pytest-6.2.5, py-1.10.0, pluggy-0.13.0' E and: 'rootdir: /tmp/pytest-of-debci/pytest-0/test_plain_stopall0'
E and: 'plugins: asyncio-0.18.1, mock-3.6.1' E and: 'asyncio: mode=legacy' E and: 'collected 1 item' E and: ''E and: 'test_plain_stopall.py . [100%]'
E and: ''E and: '=============================== warnings summary ===============================' E and: '../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191' E and: " /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file." E and: ' config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)'
E and: '' E and: '-- Docs: https://docs.pytest.org/en/stable/warnings.html'E and: '========================= 1 passed, 1 warning in 0.02s ========================='
E remains unmatched: '* 1 passed in *'/tmp/autopkgtest-lxc.p64demaa/downtmp/autopkgtest_tmp/tests/test_pytest_mock.py:842: Failed ----------------------------- Captured stdout call ----------------------------- running: /usr/bin/python3.10 -mpytest --basetemp=/tmp/pytest-of-debci/pytest-0/test_plain_stopall0/runpytest-0
in: /tmp/pytest-of-debci/pytest-0/test_plain_stopall0============================= test session starts ==============================
platform linux -- Python 3.10.2, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 rootdir: /tmp/pytest-of-debci/pytest-0/test_plain_stopall0 plugins: asyncio-0.18.1, mock-3.6.1 asyncio: mode=legacy collected 1 itemtest_plain_stopall.py . [100%]
=============================== warnings summary ===============================
../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
config.issue_config_time_warning(LEGACY_MODE, stacklevel=2) -- Docs: https://docs.pytest.org/en/stable/warnings.html========================= 1 passed, 1 warning in 0.02s ========================= __________________________ test_used_with_class_scope __________________________
testdir = <Testdir local('/tmp/pytest-of-debci/pytest-0/test_used_with_class_scope0')>
def test_used_with_class_scope(testdir: Any) -> None: testdir.makepyfile( """ import pytest import random import unittest def get_random_number(): return random.randint(0, 1) @pytest.fixture(autouse=True, scope="class") def randint_mock(class_mocker): return class_mocker.patch("random.randint", lambda x, y: 5) class TestGetRandomNumber(unittest.TestCase): def test_get_random_number(self): assert get_random_number() == 5 """ ) result = testdir.runpytest_subprocess() assert "AssertionError" not in result.stderr.str()
result.stdout.fnmatch_lines("* 1 passed in *")
E Failed: nomatch: '* 1 passed in *'E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.10.2, pytest-6.2.5, py-1.10.0, pluggy-0.13.0' E and: 'rootdir: /tmp/pytest-of-debci/pytest-0/test_used_with_class_scope0'
E and: 'plugins: asyncio-0.18.1, mock-3.6.1' E and: 'asyncio: mode=legacy' E and: 'collected 1 item' E and: ''E and: 'test_used_with_class_scope.py . [100%]'
E and: ''E and: '=============================== warnings summary ===============================' E and: '../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191' E and: " /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file." E and: ' config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)'
E and: '' E and: '-- Docs: https://docs.pytest.org/en/stable/warnings.html'E and: '========================= 1 passed, 1 warning in 0.02s ========================='
E remains unmatched: '* 1 passed in *'/tmp/autopkgtest-lxc.p64demaa/downtmp/autopkgtest_tmp/tests/test_pytest_mock.py:981: Failed ----------------------------- Captured stdout call ----------------------------- running: /usr/bin/python3.10 -mpytest --basetemp=/tmp/pytest-of-debci/pytest-0/test_used_with_class_scope0/runpytest-0
in: /tmp/pytest-of-debci/pytest-0/test_used_with_class_scope0============================= test session starts ==============================
platform linux -- Python 3.10.2, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 rootdir: /tmp/pytest-of-debci/pytest-0/test_used_with_class_scope0 plugins: asyncio-0.18.1, mock-3.6.1 asyncio: mode=legacy collected 1 itemtest_used_with_class_scope.py . [100%]
=============================== warnings summary ===============================
../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
config.issue_config_time_warning(LEGACY_MODE, stacklevel=2) -- Docs: https://docs.pytest.org/en/stable/warnings.html========================= 1 passed, 1 warning in 0.02s ========================= _________________________ test_used_with_module_scope __________________________
testdir = <Testdir local('/tmp/pytest-of-debci/pytest-0/test_used_with_module_scope0')>
def test_used_with_module_scope(testdir: Any) -> None: testdir.makepyfile( """ import pytest import random def get_random_number(): return random.randint(0, 1) @pytest.fixture(autouse=True, scope="module") def randint_mock(module_mocker):return module_mocker.patch("random.randint", lambda x, y: 5)
def test_get_random_number(): assert get_random_number() == 5 """ ) result = testdir.runpytest_subprocess() assert "AssertionError" not in result.stderr.str()
result.stdout.fnmatch_lines("* 1 passed in *")
E Failed: nomatch: '* 1 passed in *'E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.10.2, pytest-6.2.5, py-1.10.0, pluggy-0.13.0' E and: 'rootdir: /tmp/pytest-of-debci/pytest-0/test_used_with_module_scope0'
E and: 'plugins: asyncio-0.18.1, mock-3.6.1' E and: 'asyncio: mode=legacy' E and: 'collected 1 item' E and: ''E and: 'test_used_with_module_scope.py . [100%]'
E and: ''E and: '=============================== warnings summary ===============================' E and: '../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191' E and: " /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file." E and: ' config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)'
E and: '' E and: '-- Docs: https://docs.pytest.org/en/stable/warnings.html'E and: '========================= 1 passed, 1 warning in 0.02s ========================='
E remains unmatched: '* 1 passed in *'/tmp/autopkgtest-lxc.p64demaa/downtmp/autopkgtest_tmp/tests/test_pytest_mock.py:1003: Failed ----------------------------- Captured stdout call ----------------------------- running: /usr/bin/python3.10 -mpytest --basetemp=/tmp/pytest-of-debci/pytest-0/test_used_with_module_scope0/runpytest-0
in: /tmp/pytest-of-debci/pytest-0/test_used_with_module_scope0============================= test session starts ==============================
platform linux -- Python 3.10.2, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 rootdir: /tmp/pytest-of-debci/pytest-0/test_used_with_module_scope0 plugins: asyncio-0.18.1, mock-3.6.1 asyncio: mode=legacy collected 1 itemtest_used_with_module_scope.py . [100%]
=============================== warnings summary ===============================
../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
config.issue_config_time_warning(LEGACY_MODE, stacklevel=2) -- Docs: https://docs.pytest.org/en/stable/warnings.html========================= 1 passed, 1 warning in 0.02s ========================= _________________________ test_used_with_package_scope _________________________
testdir = <Testdir local('/tmp/pytest-of-debci/pytest-0/test_used_with_package_scope0')>
def test_used_with_package_scope(testdir: Any) -> None: """...""" testdir.makepyfile( """ import pytest import random def get_random_number(): return random.randint(0, 1) @pytest.fixture(autouse=True, scope="package") def randint_mock(package_mocker):return package_mocker.patch("random.randint", lambda x, y: 5)
def test_get_random_number(): assert get_random_number() == 5 """ ) result = testdir.runpytest_subprocess() assert "AssertionError" not in result.stderr.str()
result.stdout.fnmatch_lines("* 1 passed in *")
E Failed: nomatch: '* 1 passed in *'E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.10.2, pytest-6.2.5, py-1.10.0, pluggy-0.13.0' E and: 'rootdir: /tmp/pytest-of-debci/pytest-0/test_used_with_package_scope0'
E and: 'plugins: asyncio-0.18.1, mock-3.6.1' E and: 'asyncio: mode=legacy' E and: 'collected 1 item' E and: ''E and: 'test_used_with_package_scope.py . [100%]'
E and: ''E and: '=============================== warnings summary ===============================' E and: '../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191' E and: " /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file." E and: ' config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)'
E and: '' E and: '-- Docs: https://docs.pytest.org/en/stable/warnings.html'E and: '========================= 1 passed, 1 warning in 0.02s ========================='
E remains unmatched: '* 1 passed in *'/tmp/autopkgtest-lxc.p64demaa/downtmp/autopkgtest_tmp/tests/test_pytest_mock.py:1026: Failed ----------------------------- Captured stdout call ----------------------------- running: /usr/bin/python3.10 -mpytest --basetemp=/tmp/pytest-of-debci/pytest-0/test_used_with_package_scope0/runpytest-0
in: /tmp/pytest-of-debci/pytest-0/test_used_with_package_scope0============================= test session starts ==============================
platform linux -- Python 3.10.2, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 rootdir: /tmp/pytest-of-debci/pytest-0/test_used_with_package_scope0 plugins: asyncio-0.18.1, mock-3.6.1 asyncio: mode=legacy collected 1 itemtest_used_with_package_scope.py . [100%]
=============================== warnings summary ===============================
../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
config.issue_config_time_warning(LEGACY_MODE, stacklevel=2) -- Docs: https://docs.pytest.org/en/stable/warnings.html========================= 1 passed, 1 warning in 0.02s ========================= _________________________ test_used_with_session_scope _________________________
testdir = <Testdir local('/tmp/pytest-of-debci/pytest-0/test_used_with_session_scope0')>
def test_used_with_session_scope(testdir: Any) -> None: """...""" testdir.makepyfile( """ import pytest import random def get_random_number(): return random.randint(0, 1) @pytest.fixture(autouse=True, scope="session") def randint_mock(session_mocker):return session_mocker.patch("random.randint", lambda x, y: 5)
def test_get_random_number(): assert get_random_number() == 5 """ ) result = testdir.runpytest_subprocess() assert "AssertionError" not in result.stderr.str()
result.stdout.fnmatch_lines("* 1 passed in *")
E Failed: nomatch: '* 1 passed in *'E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.10.2, pytest-6.2.5, py-1.10.0, pluggy-0.13.0' E and: 'rootdir: /tmp/pytest-of-debci/pytest-0/test_used_with_session_scope0'
E and: 'plugins: asyncio-0.18.1, mock-3.6.1' E and: 'asyncio: mode=legacy' E and: 'collected 1 item' E and: ''E and: 'test_used_with_session_scope.py . [100%]'
E and: ''E and: '=============================== warnings summary ===============================' E and: '../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191' E and: " /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file." E and: ' config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)'
E and: '' E and: '-- Docs: https://docs.pytest.org/en/stable/warnings.html'E and: '========================= 1 passed, 1 warning in 0.02s ========================='
E remains unmatched: '* 1 passed in *'/tmp/autopkgtest-lxc.p64demaa/downtmp/autopkgtest_tmp/tests/test_pytest_mock.py:1049: Failed ----------------------------- Captured stdout call ----------------------------- running: /usr/bin/python3.10 -mpytest --basetemp=/tmp/pytest-of-debci/pytest-0/test_used_with_session_scope0/runpytest-0
in: /tmp/pytest-of-debci/pytest-0/test_used_with_session_scope0============================= test session starts ==============================
platform linux -- Python 3.10.2, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 rootdir: /tmp/pytest-of-debci/pytest-0/test_used_with_session_scope0 plugins: asyncio-0.18.1, mock-3.6.1 asyncio: mode=legacy collected 1 itemtest_used_with_session_scope.py . [100%]
=============================== warnings summary ===============================
../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
config.issue_config_time_warning(LEGACY_MODE, stacklevel=2) -- Docs: https://docs.pytest.org/en/stable/warnings.html========================= 1 passed, 1 warning in 0.02s ========================= =============================== warnings summary ===============================
../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
config.issue_config_time_warning(LEGACY_MODE, stacklevel=2) -- Docs: https://docs.pytest.org/en/stable/warnings.html=========================== short test summary info ============================ FAILED tests/test_pytest_mock.py::test_plain_stopall - Failed: nomatch: '* 1 ... FAILED tests/test_pytest_mock.py::test_used_with_class_scope - Failed: nomatc... FAILED tests/test_pytest_mock.py::test_used_with_module_scope - Failed: nomat... FAILED tests/test_pytest_mock.py::test_used_with_package_scope - Failed: noma... FAILED tests/test_pytest_mock.py::test_used_with_session_scope - Failed: noma... ============== 5 failed, 63 passed, 4 skipped, 1 warning in 3.59s ==============
autopkgtest [16:11:59]: test command1
OpenPGP_signature
Description: OpenPGP digital signature