Source: python-pytest-xprocess Version: 0.18.1-2 Severity: serious Justification: FTBFS Tags: bookworm sid ftbfs User: lu...@debian.org Usertags: ftbfs-20211220 ftbfs-bookworm
Hi, During a rebuild of all packages in sid, your package failed to build on amd64. Relevant part (hopefully): > make[1]: Entering directory '/<<PKGBUILDDIR>>' > make[1]: pyversions: No such file or directory > py3versions: no X-Python3-Version in control file, using supported versions > pkgos-dh_auto_install --no-py2 --in-tmp > + PKGOS_USE_PY2=yes > + PKGOS_USE_PY3=yes > + PKGOS_IN_TMP=no > + PKGOS_USE_PY2=no > + shift > + PKGOS_IN_TMP=yes > + shift > + dpkg-parsechangelog -SSource > + SRC_PKG_NAME=python-pytest-xprocess > + echo python-pytest-xprocess > + sed s/python-// > + PY_MODULE_NAME=pytest-xprocess > + [ no = yes ] > + [ yes = yes ] > + py3versions -vr > + PYTHON3S=3.10 3.9 > + [ no = yes ] > + [ yes = yes ] > + [ yes = yes ] > + TARGET_DIR=tmp > + pwd > + python3.10 setup.py install --install-layout=deb --root > /<<PKGBUILDDIR>>/debian/tmp > running install > /usr/lib/python3/dist-packages/setuptools/command/install.py:34: > SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and > pip and other standards-based tools. > warnings.warn( > running build > running build_py > creating build > creating build/lib > copying pytest_xprocess.py -> build/lib > copying xprocess.py -> build/lib > running install_lib > creating /<<PKGBUILDDIR>>/debian/tmp > creating /<<PKGBUILDDIR>>/debian/tmp/usr > creating /<<PKGBUILDDIR>>/debian/tmp/usr/lib > creating /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3 > creating /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages > copying build/lib/pytest_xprocess.py -> > /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages > copying build/lib/xprocess.py -> > /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages > byte-compiling > /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pytest_xprocess.py > to pytest_xprocess.cpython-310.pyc > byte-compiling > /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/xprocess.py to > xprocess.cpython-310.pyc > running install_egg_info > running egg_info > creating pytest_xprocess.egg-info > writing pytest_xprocess.egg-info/PKG-INFO > writing dependency_links to pytest_xprocess.egg-info/dependency_links.txt > writing entry points to pytest_xprocess.egg-info/entry_points.txt > writing requirements to pytest_xprocess.egg-info/requires.txt > writing top-level names to pytest_xprocess.egg-info/top_level.txt > writing manifest file 'pytest_xprocess.egg-info/SOURCES.txt' > reading manifest file 'pytest_xprocess.egg-info/SOURCES.txt' > reading manifest template 'MANIFEST.in' > warning: no files found matching 'CHANGELOG' > warning: no directories found matching 'example' > adding license file 'LICENSE' > writing manifest file 'pytest_xprocess.egg-info/SOURCES.txt' > Copying pytest_xprocess.egg-info to > /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pytest_xprocess-0.18.1.egg-info > Skipping SOURCES.txt > running install_scripts > + pwd > + python3.9 setup.py install --install-layout=deb --root > /<<PKGBUILDDIR>>/debian/tmp > running install > /usr/lib/python3/dist-packages/setuptools/command/install.py:34: > SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and > pip and other standards-based tools. > warnings.warn( > running build > running build_py > running install_lib > byte-compiling > /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pytest_xprocess.py > to pytest_xprocess.cpython-39.pyc > byte-compiling > /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/xprocess.py to > xprocess.cpython-39.pyc > running install_egg_info > running egg_info > writing pytest_xprocess.egg-info/PKG-INFO > writing dependency_links to pytest_xprocess.egg-info/dependency_links.txt > writing entry points to pytest_xprocess.egg-info/entry_points.txt > writing requirements to pytest_xprocess.egg-info/requires.txt > writing top-level names to pytest_xprocess.egg-info/top_level.txt > reading manifest file 'pytest_xprocess.egg-info/SOURCES.txt' > reading manifest template 'MANIFEST.in' > warning: no files found matching 'CHANGELOG' > warning: no directories found matching 'example' > adding license file 'LICENSE' > writing manifest file 'pytest_xprocess.egg-info/SOURCES.txt' > removing > '/<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pytest_xprocess-0.18.1.egg-info' > (and everything under it) > Copying pytest_xprocess.egg-info to > /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pytest_xprocess-0.18.1.egg-info > Skipping SOURCES.txt > running install_scripts > + pwd > + rm -rf /<<PKGBUILDDIR>>/debian/python*/usr/lib/python*/dist-packages/*.pth > + pwd > + rm -rf /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python*/dist-packages/*.pth > + pwd > + [ -d /<<PKGBUILDDIR>>/debian/python-pytest-xprocess/usr/bin ] > set -e ; for pyvers in 3.10 3.9; do \ > PYTHONPATH=/<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages > python$pyvers -m pytest -v ; \ > done > ============================= test session starts > ============================== > platform linux -- Python 3.10.1, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 -- > /usr/bin/python3.10 > cachedir: .pytest_cache > rootdir: /<<PKGBUILDDIR>>, configfile: tox.ini > plugins: xprocess-0.18.1 > collecting ... collected 45 items > > tests/test_callback.py::test_callback_success[s1] PASSED [ > 2%] > tests/test_callback.py::test_callback_success[s2] PASSED [ > 4%] > tests/test_callback.py::test_callback_success[s3] PASSED [ > 6%] > tests/test_callback.py::test_callback_fail[s1] PASSED [ > 8%] > tests/test_callback.py::test_callback_fail[s2] PASSED [ > 11%] > tests/test_callback.py::test_callback_fail[s3] PASSED [ > 13%] > tests/test_functional_workflow.py::test_functional_work_flow ERROR [ > 15%] > tests/test_interruption_clean_up.py::test_interruption_cleanup ERROR [ > 17%] > tests/test_interruption_clean_up.py::test_interruption_does_not_cleanup ERROR > [ 20%] > tests/test_process_initialization.py::test_servers_start[s1] PASSED [ > 22%] > tests/test_process_initialization.py::test_servers_start[s2] PASSED [ > 24%] > tests/test_process_initialization.py::test_servers_start[s3] PASSED [ > 26%] > tests/test_process_initialization.py::test_ensure_not_restart[s1] PASSED [ > 28%] > tests/test_process_initialization.py::test_ensure_not_restart[s2] PASSED [ > 31%] > tests/test_process_initialization.py::test_ensure_not_restart[s3] PASSED [ > 33%] > tests/test_process_initialization.py::test_startup_detection_max_read_lines[s1-started-20] > PASSED [ 35%] > tests/test_process_initialization.py::test_startup_detection_max_read_lines[s2-spam, > bacon, eggs-30] PASSED [ 37%] > tests/test_process_initialization.py::test_startup_detection_max_read_lines[s3-finally > started-62] PASSED [ 40%] > tests/test_process_initialization.py::test_runtime_error_on_start_fail[s1] > PASSED [ 42%] > tests/test_process_initialization.py::test_runtime_error_on_start_fail[s2] > PASSED [ 44%] > tests/test_process_initialization.py::test_runtime_error_on_start_fail[s3] > PASSED [ 46%] > tests/test_process_initialization.py::test_popen_kwargs[s1] PASSED [ > 48%] > tests/test_process_initialization.py::test_popen_kwargs[s2] PASSED [ > 51%] > tests/test_process_initialization.py::test_popen_kwargs[s3] PASSED [ > 53%] > tests/test_process_termination.py::test_clean_shutdown[s1] PASSED [ > 55%] > tests/test_process_termination.py::test_clean_shutdown[s2] PASSED [ > 57%] > tests/test_process_termination.py::test_clean_shutdown[s3] PASSED [ > 60%] > tests/test_process_termination.py::test_terminate_no_pid[s1] PASSED [ > 62%] > tests/test_process_termination.py::test_terminate_no_pid[s2] PASSED [ > 64%] > tests/test_process_termination.py::test_terminate_no_pid[s3] PASSED [ > 66%] > tests/test_process_termination.py::test_terminate_only_parent[s1] PASSED [ > 68%] > tests/test_process_termination.py::test_terminate_only_parent[s2] PASSED [ > 71%] > tests/test_process_termination.py::test_terminate_only_parent[s3] PASSED [ > 73%] > tests/test_process_termination.py::test_sigkill_after_failed_sigterm[s1] > PASSED [ 75%] > tests/test_process_termination.py::test_sigkill_after_failed_sigterm[s2] > PASSED [ 77%] > tests/test_process_termination.py::test_sigkill_after_failed_sigterm[s3] > PASSED [ 80%] > tests/test_process_termination.py::test_return_value_on_failure[s1] PASSED [ > 82%] > tests/test_process_termination.py::test_return_value_on_failure[s2] PASSED [ > 84%] > tests/test_process_termination.py::test_return_value_on_failure[s3] PASSED [ > 86%] > tests/test_resource_cleanup.py::test_0 PASSED [ > 88%] > tests/test_resource_cleanup.py::test_1 PASSED [ > 91%] > tests/test_resource_cleanup.py::test_2 PASSED [ > 93%] > tests/test_startup_timeout.py::test_timeout_raise_exception[s1] PASSED [ > 95%] > tests/test_startup_timeout.py::test_timeout_raise_exception[s2] PASSED [ > 97%] > tests/test_startup_timeout.py::test_timeout_raise_exception[s3] PASSED > [100%] > > ==================================== ERRORS > ==================================== > _________________ ERROR at setup of test_functional_work_flow > __________________ > > cls = <class '_pytest.runner.CallInfo'> > func = <function call_runtest_hook.<locals>.<lambda> at 0x7f93f6cbf6d0> > when = 'setup' > reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>) > > @classmethod > def from_call( > cls, > func: "Callable[[], TResult]", > when: "Literal['collect', 'setup', 'call', 'teardown']", > reraise: Optional[ > Union[Type[BaseException], Tuple[Type[BaseException], ...]] > ] = None, > ) -> "CallInfo[TResult]": > excinfo = None > start = timing.time() > precise_start = timing.perf_counter() > try: > > result: Optional[TResult] = func() > > /usr/lib/python3/dist-packages/_pytest/runner.py:311: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > /usr/lib/python3/dist-packages/_pytest/runner.py:255: in <lambda> > lambda: ihook(item=item, **kwds), when=when, reraise=reraise > /usr/lib/python3/dist-packages/pluggy/hooks.py:286: in __call__ > return self._hookexec(self, self.get_hookimpls(), kwargs) > /usr/lib/python3/dist-packages/pluggy/manager.py:92: in _hookexec > return self._inner_hookexec(hook, methods, kwargs) > /usr/lib/python3/dist-packages/pluggy/manager.py:83: in <lambda> > self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( > /usr/lib/python3/dist-packages/_pytest/runner.py:150: in pytest_runtest_setup > item.session._setupstate.prepare(item) > /usr/lib/python3/dist-packages/_pytest/runner.py:452: in prepare > raise e > /usr/lib/python3/dist-packages/_pytest/runner.py:449: in prepare > col.setup() > /usr/lib/python3/dist-packages/_pytest/python.py:1647: in setup > self._request._fillfixtures() > /usr/lib/python3/dist-packages/_pytest/fixtures.py:568: in _fillfixtures > item.funcargs[argname] = self.getfixturevalue(argname) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:581: in getfixturevalue > fixturedef = self._get_active_fixturedef(argname) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:601: in > _get_active_fixturedef > self._compute_fixture_value(fixturedef) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:687: in > _compute_fixture_value > fixturedef.execute(request=subrequest) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:1048: in execute > fixturedef = request._get_active_fixturedef(argname) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:601: in > _get_active_fixturedef > self._compute_fixture_value(fixturedef) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:687: in > _compute_fixture_value > fixturedef.execute(request=subrequest) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:1072: in execute > result = hook.pytest_fixture_setup(fixturedef=self, request=request) > /usr/lib/python3/dist-packages/pluggy/hooks.py:286: in __call__ > return self._hookexec(self, self.get_hookimpls(), kwargs) > /usr/lib/python3/dist-packages/pluggy/manager.py:92: in _hookexec > return self._inner_hookexec(hook, methods, kwargs) > /usr/lib/python3/dist-packages/pluggy/manager.py:83: in <lambda> > self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( > /usr/lib/python3/dist-packages/_pytest/fixtures.py:1126: in > pytest_fixture_setup > result = call_fixture_func(fixturefunc, request, kwargs) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:932: in call_fixture_func > fixture_result = fixturefunc(**kwargs) > /usr/lib/python3/dist-packages/_pytest/pytester.py:458: in pytester > return Pytester(request, tmp_path_factory, _ispytest=True) > /usr/lib/python3/dist-packages/_pytest/pytester.py:668: in __init__ > self._path: Path = tmp_path_factory.mktemp(name, numbered=True) > /usr/lib/python3/dist-packages/_pytest/tmpdir.py:91: in mktemp > basename = self._ensure_relative_to_basetemp(basename) > /usr/lib/python3/dist-packages/_pytest/tmpdir.py:72: in > _ensure_relative_to_basetemp > if (self.getbasetemp() / basename).resolve().parent != self.getbasetemp(): > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = TempPathFactory(_given_basetemp=None, > _trace=<pluggy._tracing.TagTracerSub object at 0x7f93f6e78100>, > _basetemp=None) > > def getbasetemp(self) -> Path: > """Return the base temporary directory, creating it if needed.""" > if self._basetemp is not None: > return self._basetemp > > if self._given_basetemp is not None: > basetemp = self._given_basetemp > if basetemp.exists(): > rm_rf(basetemp) > basetemp.mkdir(mode=0o700) > basetemp = basetemp.resolve() > else: > from_env = os.environ.get("PYTEST_DEBUG_TEMPROOT") > temproot = Path(from_env or tempfile.gettempdir()).resolve() > user = get_user() or "unknown" > # use a sub-directory in the temproot to speed-up > # make_numbered_dir() call > rootdir = temproot.joinpath(f"pytest-of-{user}") > rootdir.mkdir(mode=0o700, exist_ok=True) > # Because we use exist_ok=True with a predictable name, make sure > # we are the owners, to prevent any funny business (on unix, where > # temproot is usually shared). > # Also, to keep things private, fixup any world-readable temp > # rootdir's permissions. Historically 0o755 was used, so we can't > # just error out on this, at least for a while. > if sys.platform != "win32": > uid = os.getuid() > rootdir_stat = rootdir.stat() > # getuid shouldn't fail, but cpython defines such a case. > # Let's hope for the best. > if uid != -1: > if rootdir_stat.st_uid != uid: > > raise OSError( > f"The temporary directory {rootdir} is not owned > by the current user. " > "Fix this and try again." > ) > E OSError: The temporary directory > /tmp/pytest-of-user42 is not owned by the current user. Fix this and try > again. > > /usr/lib/python3/dist-packages/_pytest/tmpdir.py:132: OSError > _________________ ERROR at setup of test_interruption_cleanup > __________________ > > cls = <class '_pytest.runner.CallInfo'> > func = <function call_runtest_hook.<locals>.<lambda> at 0x7f93f6ac7520> > when = 'setup' > reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>) > > @classmethod > def from_call( > cls, > func: "Callable[[], TResult]", > when: "Literal['collect', 'setup', 'call', 'teardown']", > reraise: Optional[ > Union[Type[BaseException], Tuple[Type[BaseException], ...]] > ] = None, > ) -> "CallInfo[TResult]": > excinfo = None > start = timing.time() > precise_start = timing.perf_counter() > try: > > result: Optional[TResult] = func() > > /usr/lib/python3/dist-packages/_pytest/runner.py:311: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > /usr/lib/python3/dist-packages/_pytest/runner.py:255: in <lambda> > lambda: ihook(item=item, **kwds), when=when, reraise=reraise > /usr/lib/python3/dist-packages/pluggy/hooks.py:286: in __call__ > return self._hookexec(self, self.get_hookimpls(), kwargs) > /usr/lib/python3/dist-packages/pluggy/manager.py:92: in _hookexec > return self._inner_hookexec(hook, methods, kwargs) > /usr/lib/python3/dist-packages/pluggy/manager.py:83: in <lambda> > self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( > /usr/lib/python3/dist-packages/_pytest/runner.py:150: in pytest_runtest_setup > item.session._setupstate.prepare(item) > /usr/lib/python3/dist-packages/_pytest/runner.py:452: in prepare > raise e > /usr/lib/python3/dist-packages/_pytest/runner.py:449: in prepare > col.setup() > /usr/lib/python3/dist-packages/_pytest/python.py:1647: in setup > self._request._fillfixtures() > /usr/lib/python3/dist-packages/_pytest/fixtures.py:568: in _fillfixtures > item.funcargs[argname] = self.getfixturevalue(argname) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:581: in getfixturevalue > fixturedef = self._get_active_fixturedef(argname) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:601: in > _get_active_fixturedef > self._compute_fixture_value(fixturedef) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:687: in > _compute_fixture_value > fixturedef.execute(request=subrequest) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:1048: in execute > fixturedef = request._get_active_fixturedef(argname) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:601: in > _get_active_fixturedef > self._compute_fixture_value(fixturedef) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:687: in > _compute_fixture_value > fixturedef.execute(request=subrequest) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:1072: in execute > result = hook.pytest_fixture_setup(fixturedef=self, request=request) > /usr/lib/python3/dist-packages/pluggy/hooks.py:286: in __call__ > return self._hookexec(self, self.get_hookimpls(), kwargs) > /usr/lib/python3/dist-packages/pluggy/manager.py:92: in _hookexec > return self._inner_hookexec(hook, methods, kwargs) > /usr/lib/python3/dist-packages/pluggy/manager.py:83: in <lambda> > self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( > /usr/lib/python3/dist-packages/_pytest/fixtures.py:1126: in > pytest_fixture_setup > result = call_fixture_func(fixturefunc, request, kwargs) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:932: in call_fixture_func > fixture_result = fixturefunc(**kwargs) > /usr/lib/python3/dist-packages/_pytest/pytester.py:458: in pytester > return Pytester(request, tmp_path_factory, _ispytest=True) > /usr/lib/python3/dist-packages/_pytest/pytester.py:668: in __init__ > self._path: Path = tmp_path_factory.mktemp(name, numbered=True) > /usr/lib/python3/dist-packages/_pytest/tmpdir.py:91: in mktemp > basename = self._ensure_relative_to_basetemp(basename) > /usr/lib/python3/dist-packages/_pytest/tmpdir.py:72: in > _ensure_relative_to_basetemp > if (self.getbasetemp() / basename).resolve().parent != self.getbasetemp(): > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = TempPathFactory(_given_basetemp=None, > _trace=<pluggy._tracing.TagTracerSub object at 0x7f93f6e78100>, > _basetemp=None) > > def getbasetemp(self) -> Path: > """Return the base temporary directory, creating it if needed.""" > if self._basetemp is not None: > return self._basetemp > > if self._given_basetemp is not None: > basetemp = self._given_basetemp > if basetemp.exists(): > rm_rf(basetemp) > basetemp.mkdir(mode=0o700) > basetemp = basetemp.resolve() > else: > from_env = os.environ.get("PYTEST_DEBUG_TEMPROOT") > temproot = Path(from_env or tempfile.gettempdir()).resolve() > user = get_user() or "unknown" > # use a sub-directory in the temproot to speed-up > # make_numbered_dir() call > rootdir = temproot.joinpath(f"pytest-of-{user}") > rootdir.mkdir(mode=0o700, exist_ok=True) > # Because we use exist_ok=True with a predictable name, make sure > # we are the owners, to prevent any funny business (on unix, where > # temproot is usually shared). > # Also, to keep things private, fixup any world-readable temp > # rootdir's permissions. Historically 0o755 was used, so we can't > # just error out on this, at least for a while. > if sys.platform != "win32": > uid = os.getuid() > rootdir_stat = rootdir.stat() > # getuid shouldn't fail, but cpython defines such a case. > # Let's hope for the best. > if uid != -1: > if rootdir_stat.st_uid != uid: > > raise OSError( > f"The temporary directory {rootdir} is not owned > by the current user. " > "Fix this and try again." > ) > E OSError: The temporary directory > /tmp/pytest-of-user42 is not owned by the current user. Fix this and try > again. > > /usr/lib/python3/dist-packages/_pytest/tmpdir.py:132: OSError > _____________ ERROR at setup of test_interruption_does_not_cleanup > _____________ > > cls = <class '_pytest.runner.CallInfo'> > func = <function call_runtest_hook.<locals>.<lambda> at 0x7f93f6ac79a0> > when = 'setup' > reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>) > > @classmethod > def from_call( > cls, > func: "Callable[[], TResult]", > when: "Literal['collect', 'setup', 'call', 'teardown']", > reraise: Optional[ > Union[Type[BaseException], Tuple[Type[BaseException], ...]] > ] = None, > ) -> "CallInfo[TResult]": > excinfo = None > start = timing.time() > precise_start = timing.perf_counter() > try: > > result: Optional[TResult] = func() > > /usr/lib/python3/dist-packages/_pytest/runner.py:311: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > /usr/lib/python3/dist-packages/_pytest/runner.py:255: in <lambda> > lambda: ihook(item=item, **kwds), when=when, reraise=reraise > /usr/lib/python3/dist-packages/pluggy/hooks.py:286: in __call__ > return self._hookexec(self, self.get_hookimpls(), kwargs) > /usr/lib/python3/dist-packages/pluggy/manager.py:92: in _hookexec > return self._inner_hookexec(hook, methods, kwargs) > /usr/lib/python3/dist-packages/pluggy/manager.py:83: in <lambda> > self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( > /usr/lib/python3/dist-packages/_pytest/runner.py:150: in pytest_runtest_setup > item.session._setupstate.prepare(item) > /usr/lib/python3/dist-packages/_pytest/runner.py:452: in prepare > raise e > /usr/lib/python3/dist-packages/_pytest/runner.py:449: in prepare > col.setup() > /usr/lib/python3/dist-packages/_pytest/python.py:1647: in setup > self._request._fillfixtures() > /usr/lib/python3/dist-packages/_pytest/fixtures.py:568: in _fillfixtures > item.funcargs[argname] = self.getfixturevalue(argname) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:581: in getfixturevalue > fixturedef = self._get_active_fixturedef(argname) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:601: in > _get_active_fixturedef > self._compute_fixture_value(fixturedef) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:687: in > _compute_fixture_value > fixturedef.execute(request=subrequest) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:1048: in execute > fixturedef = request._get_active_fixturedef(argname) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:601: in > _get_active_fixturedef > self._compute_fixture_value(fixturedef) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:687: in > _compute_fixture_value > fixturedef.execute(request=subrequest) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:1072: in execute > result = hook.pytest_fixture_setup(fixturedef=self, request=request) > /usr/lib/python3/dist-packages/pluggy/hooks.py:286: in __call__ > return self._hookexec(self, self.get_hookimpls(), kwargs) > /usr/lib/python3/dist-packages/pluggy/manager.py:92: in _hookexec > return self._inner_hookexec(hook, methods, kwargs) > /usr/lib/python3/dist-packages/pluggy/manager.py:83: in <lambda> > self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( > /usr/lib/python3/dist-packages/_pytest/fixtures.py:1126: in > pytest_fixture_setup > result = call_fixture_func(fixturefunc, request, kwargs) > /usr/lib/python3/dist-packages/_pytest/fixtures.py:932: in call_fixture_func > fixture_result = fixturefunc(**kwargs) > /usr/lib/python3/dist-packages/_pytest/pytester.py:458: in pytester > return Pytester(request, tmp_path_factory, _ispytest=True) > /usr/lib/python3/dist-packages/_pytest/pytester.py:668: in __init__ > self._path: Path = tmp_path_factory.mktemp(name, numbered=True) > /usr/lib/python3/dist-packages/_pytest/tmpdir.py:91: in mktemp > basename = self._ensure_relative_to_basetemp(basename) > /usr/lib/python3/dist-packages/_pytest/tmpdir.py:72: in > _ensure_relative_to_basetemp > if (self.getbasetemp() / basename).resolve().parent != self.getbasetemp(): > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = TempPathFactory(_given_basetemp=None, > _trace=<pluggy._tracing.TagTracerSub object at 0x7f93f6e78100>, > _basetemp=None) > > def getbasetemp(self) -> Path: > """Return the base temporary directory, creating it if needed.""" > if self._basetemp is not None: > return self._basetemp > > if self._given_basetemp is not None: > basetemp = self._given_basetemp > if basetemp.exists(): > rm_rf(basetemp) > basetemp.mkdir(mode=0o700) > basetemp = basetemp.resolve() > else: > from_env = os.environ.get("PYTEST_DEBUG_TEMPROOT") > temproot = Path(from_env or tempfile.gettempdir()).resolve() > user = get_user() or "unknown" > # use a sub-directory in the temproot to speed-up > # make_numbered_dir() call > rootdir = temproot.joinpath(f"pytest-of-{user}") > rootdir.mkdir(mode=0o700, exist_ok=True) > # Because we use exist_ok=True with a predictable name, make sure > # we are the owners, to prevent any funny business (on unix, where > # temproot is usually shared). > # Also, to keep things private, fixup any world-readable temp > # rootdir's permissions. Historically 0o755 was used, so we can't > # just error out on this, at least for a while. > if sys.platform != "win32": > uid = os.getuid() > rootdir_stat = rootdir.stat() > # getuid shouldn't fail, but cpython defines such a case. > # Let's hope for the best. > if uid != -1: > if rootdir_stat.st_uid != uid: > > raise OSError( > f"The temporary directory {rootdir} is not owned > by the current user. " > "Fix this and try again." > ) > E OSError: The temporary directory > /tmp/pytest-of-user42 is not owned by the current user. Fix this and try > again. > > /usr/lib/python3/dist-packages/_pytest/tmpdir.py:132: OSError > =========================== short test summary info > ============================ > ERROR tests/test_functional_workflow.py::test_functional_work_flow - > OSError:... > ERROR tests/test_interruption_clean_up.py::test_interruption_cleanup - > OSErro... > ERROR tests/test_interruption_clean_up.py::test_interruption_does_not_cleanup > ======================== 42 passed, 3 errors in 35.73s > ========================= > pytest-xprocess reminder::Be sure to terminate the started process by running > 'pytest --xkill' if you have not explicitly done so in your fixture with > 'xprocess.getinfo(<process_name>).terminate()'. > make[1]: *** [debian/rules:21: override_dh_auto_install] Error 1 The full build log is available from: http://qa-logs.debian.net/2021/12/20/python-pytest-xprocess_0.18.1-2_unstable.log A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute! If you reassign this bug to another package, please marking it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects If you fail to reproduce this, please provide a build log and diff it with mine so that we can identify if something relevant changed in the meantime.