question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

BUG: [unit test] pandas/io/clipboard/__init__.py:300: PyperclipException

See original GitHub issue

Pandas version checks

  • I have checked that this issue has not already been reported.

  • I have confirmed this bug exists on the latest version of pandas.

  • I have confirmed this bug exists on the main branch of pandas.

Reproducible Example

# pytest pandas/tests/io/
============================================================================================ short test summary info =============================================================================================
FAILED pandas/tests/io/test_clipboard.py::TestClipboard::test_raw_roundtrip[\U0001f44d...] - pandas.errors.PyperclipException: 
FAILED pandas/tests/io/test_clipboard.py::TestClipboard::test_raw_roundtrip[\u03a9\u0153\u2211\xb4...] - pandas.errors.PyperclipException: 
FAILED pandas/tests/io/test_clipboard.py::TestClipboard::test_raw_roundtrip[abcd...] - pandas.errors.PyperclipException: 
========================================================================================= 3 failed, 232 passed in 1.55s ==========================================================================================

Issue Description

The unit-test https://github.com/pandas-dev/pandas/blob/047c11d7801ffd0cf679d606293af510e34d7b92/pandas/tests/io/test_clipboard.py#L398 does not pass.

I am using VSCode with the .devcontainer file (thus in a container), with a linux distribution (pop-os). Current commit I am on is 047c11d7801ffd0cf679d606293af510e34d7b92

I tried to do apt-get install xclip but it did not solve the issue.

Expected Behavior

The test should pass.

Installed Versions

INSTALLED VERSIONS

commit : 047c11d7801ffd0cf679d606293af510e34d7b92 python : 3.8.13.final.0 python-bits : 64 OS : Linux OS-release : 5.8.0-7630-generic Version : #32~1609193707~20.10~781bb80-Ubuntu SMP Tue Jan 5 21:29:56 UTC 2 machine : x86_64 processor : x86_64 byteorder : little LC_ALL : C.UTF-8 LANG : C.UTF-8 LOCALE : en_US.UTF-8

pandas : 1.6.0.dev0+89.g047c11d780.dirty numpy : 1.22.4 pytz : 2022.2.1 dateutil : 2.8.2 setuptools : 65.3.0 pip : 22.2.2 Cython : 0.29.32 pytest : 7.1.3 hypothesis : 6.54.5 sphinx : 4.5.0 blosc : None feather : None xlsxwriter : 3.0.3 lxml.etree : 4.9.1 html5lib : 1.1 pymysql : 1.0.2 psycopg2 : 2.9.3 jinja2 : 3.0.3 IPython : 8.5.0 pandas_datareader: 0.10.0 bs4 : 4.11.1 bottleneck : 1.3.5 brotli : fastparquet : 0.8.3 fsspec : 2021.11.0 gcsfs : 2021.11.0 matplotlib : 3.5.3 numba : 0.55.2 numexpr : 2.8.3 odfpy : None openpyxl : 3.0.10 pandas_gbq : 0.17.8 pyarrow : 9.0.0 pyreadstat : 1.1.9 pyxlsb : 1.0.9 s3fs : 2021.11.0 scipy : 1.9.1 snappy : sqlalchemy : 1.4.41 tables : 3.7.0 tabulate : 0.8.10 xarray : 2022.6.0 xlrd : 2.0.1 xlwt : 1.3.0 zstandard : 0.18.0 tzdata : None

Issue Analytics

  • State:closed
  • Created a year ago
  • Comments:9 (9 by maintainers)

github_iconTop GitHub Comments

1reaction
mroeschkecommented, Sep 12, 2022

Thanks for investigating. Yes a PR with that xfail would be fine. Since this modifies the test to work in “local” development environments, as long as the CI still passes (which doesn’t use the container), should be a fine addition.

0reactions
adrienpacificocommented, Sep 12, 2022

Moreover, if I

Xvfb :99 &
export DISPLAY=:99

Then the value of HAS_DISPLAY becomes equal to ':99', and the tests now Xpass!

However, if I get it right we should have:

  • Tests launched without display --> should xfail
  • Tests launched with display --> should pass

@mroeschke, I’ll try to get that behavior by modifiying the tests and the maybe I should make a PR?

Is there a way to see if this test pass somewhere in the CI?

My proposition would be to :

  • Run the test if a environment variable DISPLAY is set (current behavior is to xpass it)
  • xfail the test if there is no environment variable

Code proposition:

    @pytest.mark.parametrize("data", ["\U0001f44d...", "Ωœ∑´...", "abcd..."])
    @pytest.mark.xfail(
        os.environ.get('DISPLAY') is None, 
        reason="Cannot be runned if a headless system is not put in place with ",
        strict=True,
    )
    def test_raw_roundtrip(self, data):
        # PR #25040 wide unicode wasn't copied correctly on PY3 on windows
        clipboard_set(data)
        assert data == clipboard_get()
Read more comments on GitHub >

github_iconTop Results From Across the Web

More bugs in unit tests than in production code - Stack Overflow
The error turns out to be in the test, not the actual code. Fix the test. If you think about it, this is...
Read more >
Should we always unit test bugs when correcting them?
Yes, in general you should. As with all guidelines, you'll need to use your best judgement when they run against other guidelines.
Read more >
C# unit test tutorial - Visual Studio (Windows) - Microsoft Learn
This article steps you through creating, running, and customizing a series of unit tests using the Microsoft unit test framework for managed ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found