You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello! I'm trying to upgrade the Debian version of this package to 3.0.0, but some of the tests are now failing. I don't know why this might be, as they run fine on GitHub Actions. Here are the failing tests (the xephyr tests fail in the same way if xserver-xephyr is installed; they are not included here). I wonder if you have any idea what might be wrong and how we might address it? It seems that the --no-xvfb marker might be being ignored? As a comparison, the tests work fine on 2.0.0; if you want to look at my attempt at packaging 3.0.0 for Debian, the git repo is at https://salsa.debian.org/python-team/packages/pytest-xvfb
$ python3.11 -m pytest tests/test_xvfb.py::test_empty_display tests/test_xvfb.py::test_no_xvfb_marker tests/test_xvfb.py::test_xvfb_with_xauth
============================= test session starts ==============================
platform linux -- Python 3.11.6, pytest-7.4.3, pluggy-1.3.0
rootdir: /build/pytest-xvfb-eZZpZI/pkg-tests
plugins: xvfb-3.0.0
collected 16 items
tests/test_xvfb.py FFss.F.FssssFFss [100%]
=================================== FAILURES ===================================
___________________________ test_empty_display[None] ___________________________
pytester = <Pytester PosixPath('/tmp/pytest-of-user/pytest-13/test_empty_display0')>
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fdff0f27d90>
backend_args = []
def test_empty_display(
pytester: pytest.Pytester, monkeypatch: pytest.MonkeyPatch, backend_args: list[str]
) -> None:
if backend_args == ["--xvfb-backend", "xephyr"]:
pytest.skip("Xephyr needs a host display")
monkeypatch.setenv("DISPLAY", "")
pytester.makepyfile(
"""
import os
def test_display():
assert 'DISPLAY' in os.environ
"""
)
result = pytester.runpytest(*backend_args)
> assert os.environ["DISPLAY"] == ""
E AssertionError: assert ':152' == ''
E + :152
/build/pytest-xvfb-eZZpZI/pkg-tests/tests/test_xvfb.py:84: AssertionError
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.11.6, pytest-7.4.3, pluggy-1.3.0
rootdir: /tmp/pytest-of-user/pytest-13/test_empty_display0
plugins: xvfb-3.0.0
collected 1 item
test_empty_display.py . [100%]
============================== 1 passed in 0.01s ===============================
___________________________ test_empty_display[xvfb] ___________________________
pytester = <Pytester PosixPath('/tmp/pytest-of-user/pytest-13/test_empty_display1')>
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fdff095d690>
backend_args = ['--xvfb-backend', 'xvfb']
def test_empty_display(
pytester: pytest.Pytester, monkeypatch: pytest.MonkeyPatch, backend_args: list[str]
) -> None:
if backend_args == ["--xvfb-backend", "xephyr"]:
pytest.skip("Xephyr needs a host display")
monkeypatch.setenv("DISPLAY", "")
pytester.makepyfile(
"""
import os
def test_display():
assert 'DISPLAY' in os.environ
"""
)
result = pytester.runpytest(*backend_args)
> assert os.environ["DISPLAY"] == ""
E AssertionError: assert ':153' == ''
E + :153
/build/pytest-xvfb-eZZpZI/pkg-tests/tests/test_xvfb.py:84: AssertionError
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.11.6, pytest-7.4.3, pluggy-1.3.0
rootdir: /tmp/pytest-of-user/pytest-13/test_empty_display1
plugins: xvfb-3.0.0
collected 1 item
test_empty_display.py . [100%]
============================== 1 passed in 0.00s ===============================
___________________ test_no_xvfb_marker[None-args1-2 passed] ___________________
pytester = <Pytester PosixPath('/tmp/pytest-of-user/pytest-13/test_no_xvfb_marker1')>
args = ['--no-xvfb'], outcome = '2 passed', backend_args = []
@pytest.mark.parametrize(
"args, outcome",
[
([], "1 passed, 1 skipped"),
(["--no-xvfb"], "2 passed"),
],
)
def test_no_xvfb_marker(
pytester: pytest.Pytester, args: list[str], outcome: str, backend_args: list[str]
) -> None:
pytester.makepyfile(
"""
import pytest
@pytest.mark.no_xvfb
def test_marked():
pass
def test_unmarked():
pass
"""
)
res = pytester.runpytest(*args, *backend_args)
> res.stdout.fnmatch_lines(f"*= {outcome}*")
E Failed: nomatch: '*= 2 passed*'
E and: '============================= test session starts =============================='
E and: 'platform linux -- Python 3.11.6, pytest-7.4.3, pluggy-1.3.0'
E and: 'rootdir: /tmp/pytest-of-user/pytest-13/test_no_xvfb_marker1'
E and: 'plugins: xvfb-3.0.0'
E and: 'collected 2 items'
E and: ''
E and: 'test_no_xvfb_marker.py s. [100%]'
E and: ''
E and: '========================= 1 passed, 1 skipped in 0.00s ========================='
E remains unmatched: '*= 2 passed*'
/build/pytest-xvfb-eZZpZI/pkg-tests/tests/test_xvfb.py:243: Failed
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.11.6, pytest-7.4.3, pluggy-1.3.0
rootdir: /tmp/pytest-of-user/pytest-13/test_no_xvfb_marker1
plugins: xvfb-3.0.0
collected 2 items
test_no_xvfb_marker.py s. [100%]
========================= 1 passed, 1 skipped in 0.00s =========================
___________________ test_no_xvfb_marker[xvfb-args1-2 passed] ___________________
pytester = <Pytester PosixPath('/tmp/pytest-of-user/pytest-13/test_no_xvfb_marker3')>
args = ['--no-xvfb'], outcome = '2 passed'
backend_args = ['--xvfb-backend', 'xvfb']
@pytest.mark.parametrize(
"args, outcome",
[
([], "1 passed, 1 skipped"),
(["--no-xvfb"], "2 passed"),
],
)
def test_no_xvfb_marker(
pytester: pytest.Pytester, args: list[str], outcome: str, backend_args: list[str]
) -> None:
pytester.makepyfile(
"""
import pytest
@pytest.mark.no_xvfb
def test_marked():
pass
def test_unmarked():
pass
"""
)
res = pytester.runpytest(*args, *backend_args)
> res.stdout.fnmatch_lines(f"*= {outcome}*")
E Failed: nomatch: '*= 2 passed*'
E and: '============================= test session starts =============================='
E and: 'platform linux -- Python 3.11.6, pytest-7.4.3, pluggy-1.3.0'
E and: 'rootdir: /tmp/pytest-of-user/pytest-13/test_no_xvfb_marker3'
E and: 'plugins: xvfb-3.0.0'
E and: 'collected 2 items'
E and: ''
E and: 'test_no_xvfb_marker.py s. [100%]'
E and: ''
E and: '========================= 1 passed, 1 skipped in 0.00s ========================='
E remains unmatched: '*= 2 passed*'
/build/pytest-xvfb-eZZpZI/pkg-tests/tests/test_xvfb.py:243: Failed
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.11.6, pytest-7.4.3, pluggy-1.3.0
rootdir: /tmp/pytest-of-user/pytest-13/test_no_xvfb_marker3
plugins: xvfb-3.0.0
collected 2 items
test_no_xvfb_marker.py s. [100%]
========================= 1 passed, 1 skipped in 0.00s =========================
__________________________ test_xvfb_with_xauth[None] __________________________
pytester = <Pytester PosixPath('/tmp/pytest-of-user/pytest-13/test_xvfb_with_xauth0')>
backend_args = []
@pytest.mark.skipif(not xauth_available, reason="no xauth")
def test_xvfb_with_xauth(pytester: pytest.Pytester, backend_args: list[str]) -> None:
original_auth = os.environ.get("XAUTHORITY")
pytester.makeini(
"""
[pytest]
xvfb_xauth = True
"""
)
pytester.makepyfile(
"""
import os
def test_xauth():
print('\\nXAUTHORITY: ' + os.environ['XAUTHORITY'])
assert os.path.isfile(os.environ['XAUTHORITY'])
assert os.access(os.environ['XAUTHORITY'], os.R_OK)
"""
)
result = pytester.runpytest("-s", *backend_args)
# Get and parse the XAUTHORITY: line
authline = next(l for l in result.outlines if l.startswith("XAUTHORITY:"))
authfile = authline.split(" ", 1)[1]
assert result.ret == 0
# Make sure the authfile is deleted
> assert not os.path.exists(authfile)
E AssertionError: assert not True
E + where True = <function exists at 0x7fdff1e434c0>('/tmp/PyVirtualDisplay.hsrb32v7.Xauthority')
E + where <function exists at 0x7fdff1e434c0> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
/build/pytest-xvfb-eZZpZI/pkg-tests/tests/test_xvfb.py:347: AssertionError
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.11.6, pytest-7.4.3, pluggy-1.3.0
rootdir: /tmp/pytest-of-user/pytest-13/test_xvfb_with_xauth0
configfile: tox.ini
plugins: xvfb-3.0.0
collected 1 item
test_xvfb_with_xauth.py
XAUTHORITY: /tmp/PyVirtualDisplay.hsrb32v7.Xauthority
.
============================== 1 passed in 0.01s ===============================
__________________________ test_xvfb_with_xauth[xvfb] __________________________
pytester = <Pytester PosixPath('/tmp/pytest-of-user/pytest-13/test_xvfb_with_xauth1')>
backend_args = ['--xvfb-backend', 'xvfb']
@pytest.mark.skipif(not xauth_available, reason="no xauth")
def test_xvfb_with_xauth(pytester: pytest.Pytester, backend_args: list[str]) -> None:
original_auth = os.environ.get("XAUTHORITY")
pytester.makeini(
"""
[pytest]
xvfb_xauth = True
"""
)
pytester.makepyfile(
"""
import os
def test_xauth():
print('\\nXAUTHORITY: ' + os.environ['XAUTHORITY'])
assert os.path.isfile(os.environ['XAUTHORITY'])
assert os.access(os.environ['XAUTHORITY'], os.R_OK)
"""
)
result = pytester.runpytest("-s", *backend_args)
# Get and parse the XAUTHORITY: line
authline = next(l for l in result.outlines if l.startswith("XAUTHORITY:"))
authfile = authline.split(" ", 1)[1]
assert result.ret == 0
# Make sure the authfile is deleted
> assert not os.path.exists(authfile)
E AssertionError: assert not True
E + where True = <function exists at 0x7fdff1e434c0>('/tmp/PyVirtualDisplay.pp7i4tj7.Xauthority')
E + where <function exists at 0x7fdff1e434c0> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
/build/pytest-xvfb-eZZpZI/pkg-tests/tests/test_xvfb.py:347: AssertionError
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.11.6, pytest-7.4.3, pluggy-1.3.0
rootdir: /tmp/pytest-of-user/pytest-13/test_xvfb_with_xauth1
configfile: tox.ini
plugins: xvfb-3.0.0
collected 1 item
test_xvfb_with_xauth.py
XAUTHORITY: /tmp/PyVirtualDisplay.pp7i4tj7.Xauthority
.
============================== 1 passed in 0.01s ===============================
=============================== warnings summary ===============================
tests/test_xvfb.py::test_empty_display[None]
/usr/lib/python3.11/subprocess.py:1127: ResourceWarning: subprocess 5808 is still running
_warn("subprocess %s is still running" % self.pid,
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
tests/test_xvfb.py::test_empty_display[xvfb]
/usr/lib/python3.11/subprocess.py:1127: ResourceWarning: subprocess 5812 is still running
_warn("subprocess %s is still running" % self.pid,
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
tests/test_xvfb.py::test_no_xvfb_marker[None-args0-1 passed, 1 skipped]
/usr/lib/python3.11/subprocess.py:1127: ResourceWarning: subprocess 5816 is still running
_warn("subprocess %s is still running" % self.pid,
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
tests/test_xvfb.py::test_no_xvfb_marker[xvfb-args0-1 passed, 1 skipped]
/usr/lib/python3.11/subprocess.py:1127: ResourceWarning: subprocess 5820 is still running
_warn("subprocess %s is still running" % self.pid,
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
tests/test_xvfb.py::test_xvfb_with_xauth[None]
/usr/lib/python3.11/subprocess.py:1127: ResourceWarning: subprocess 5824 is still running
_warn("subprocess %s is still running" % self.pid,
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
tests/test_xvfb.py::test_xvfb_with_xauth[xvfb]
/usr/lib/python3.11/subprocess.py:1127: ResourceWarning: subprocess 5829 is still running
_warn("subprocess %s is still running" % self.pid,
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_xvfb.py::test_empty_display[None] - AssertionError: assert ':152' == ''
FAILED tests/test_xvfb.py::test_empty_display[xvfb] - AssertionError: assert ':153' == ''
FAILED tests/test_xvfb.py::test_no_xvfb_marker[None-args1-2 passed] - Failed: nomatch: '*= 2 passed*'
FAILED tests/test_xvfb.py::test_no_xvfb_marker[xvfb-args1-2 passed] - Failed: nomatch: '*= 2 passed*'
FAILED tests/test_xvfb.py::test_xvfb_with_xauth[None] - AssertionError: assert not True
FAILED tests/test_xvfb.py::test_xvfb_with_xauth[xvfb] - AssertionError: assert not True
============== 6 failed, 2 passed, 8 skipped, 6 warnings in 0.86s ==============
sys:1: ResourceWarning: unclosed file <_io.BufferedReader name=11>
sys:1: ResourceWarning: unclosed file <_io.BufferedReader name=13>
sys:1: ResourceWarning: unclosed file <_io.BufferedReader name=22>
sys:1: ResourceWarning: unclosed file <_io.BufferedReader name=25>
sys:1: ResourceWarning: unclosed file <_io.BufferedReader name=15>
sys:1: ResourceWarning: unclosed file <_io.BufferedReader name=17>
sys:1: ResourceWarning: unclosed file <_io.BufferedReader name=21>
sys:1: ResourceWarning: unclosed file <_io.BufferedReader name=23>
sys:1: ResourceWarning: unclosed file <_io.BufferedReader name=24>
sys:1: ResourceWarning: unclosed file <_io.BufferedReader name=27>
sys:1: ResourceWarning: unclosed file <_io.BufferedReader name=26>
sys:1: ResourceWarning: unclosed file <_io.BufferedReader name=29>
The text was updated successfully, but these errors were encountered:
Oh, I've found the problem. The Debian version used the PyPI version of the package, which does not contain pytest.ini, so the new option included there (--runpytest=subprocess) is not passed on to pytest. I guess this could be fixed by adding pytest.ini to the MANIFEST.in file.
Hello! I'm trying to upgrade the Debian version of this package to 3.0.0, but some of the tests are now failing. I don't know why this might be, as they run fine on GitHub Actions. Here are the failing tests (the xephyr tests fail in the same way if xserver-xephyr is installed; they are not included here). I wonder if you have any idea what might be wrong and how we might address it? It seems that the
--no-xvfb
marker might be being ignored? As a comparison, the tests work fine on 2.0.0; if you want to look at my attempt at packaging 3.0.0 for Debian, the git repo is at https://salsa.debian.org/python-team/packages/pytest-xvfbThe text was updated successfully, but these errors were encountered: