Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test_range_indicator_visible_on_hover_only fails #17059

Closed
5 of 10 tasks
juliangilbey opened this issue Dec 21, 2021 · 2 comments
Closed
5 of 10 tasks

test_range_indicator_visible_on_hover_only fails #17059

juliangilbey opened this issue Dec 21, 2021 · 2 comments
Assignees
Milestone

Comments

@juliangilbey
Copy link
Contributor

Issue Report Checklist

  • Searched the issues page for similar reports
  • Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
  • Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
  • Could not reproduce inside jupyter qtconsole (if console-related)
  • Tried basic troubleshooting (if a bug/error)
    • Restarted Spyder
    • Reset preferences with spyder --reset
    • Reinstalled the latest version of Anaconda
    • Tried the other applicable steps from the Troubleshooting Guide
  • Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description

I have to say - these package tests are amazing! Congratulations on compiling such a thorough test suite over the years.

I tried running the package tests (using runtest.py). I get several errors, but it probably makes more sense to deal with each one separately, so that's what I'm doing. (See #17057 and #17058 for the first two errors; this is the third one.)

What steps reproduce the problem?

Here's an attempt at running just these tests; the output from runtests.py is essentially identical. I ran it inside a chroot with only the listed requirements (plus git, which was needed but not listed) installed. The run shown here is from running the test file separately; the results are basically identical. There is no difference if I run it outside the chroot.

(sid):~/debian/spyder-packages/spyder/build-area/spyder-5.2.0+dfsg1 $ xvfb-run -a -s "-screen 0 1024x768x24 +extension GLX" python3.9 -m pytest spyder/plugins/editor/panels/tests/test_scrollflag.py
============================= test session starts ==============================
platform linux -- Python 3.9.9, pytest-6.2.5, py-1.10.0, pluggy-0.13.0
PyQt5 5.15.6 -- Qt runtime 5.15.2 -- Qt compiled 5.15.2
rootdir: /home/jdg/debian/spyder-packages/spyder/build-area/spyder-5.2.0+dfsg1, configfile: pytest.ini
plugins: typeguard-2.11.1, flaky-3.7.0, xvfb-2.0.0, mock-3.6.1, cov-3.0.0, order-1.0.0, qt-4.0.2, lazy-fixture-0.6.3
collected 4 items                                                              

spyder/plugins/editor/panels/tests/test_scrollflag.py .sF.               [100%]

=================================== FAILURES ===================================
__________________ test_range_indicator_visible_on_hover_only __________________

editor_bot = <spyder.plugins.editor.widgets.codeeditor.CodeEditor object at 0x7f54a6445c10>
qtbot = <pytestqt.qtbot.QtBot object at 0x7f54a6454d90>

    @pytest.mark.skipif(running_in_ci(), reason="Fails on CIs")
    def test_range_indicator_visible_on_hover_only(editor_bot, qtbot):
        """Test that the slider range indicator is visible only when hovering
        over the scrollflag area when the editor vertical scrollbar is visible.
        The scrollflag area should remain hidden at all times when the editor
        vertical scrollbar is not visible."""
        editor = editor_bot
        sfa = editor.scrollflagarea
        editor.show()
    
        # Set a short text in the editor and assert that the slider is not visible.
        editor.set_text(short_code)
        editor.resize(450, 150)
        qtbot.waitUntil(lambda: not sfa.slider)
    
        # Move the mouse cursor to the center of the scrollflagarea and assert
        # that the slider range indicator remains hidden. The slider range
        # indicator should remains hidden at all times when the vertical scrollbar
        # of the editor is not visible.
        x = int(sfa.width()/2)
        y = int(sfa.height()/2)
        qtbot.mouseMove(sfa, pos=QPoint(x, y), delay=-1)
    
        assert sfa._range_indicator_is_visible is False
    
        # Set a long text in the editor and assert that the slider is visible.
        editor.set_text(long_code)
        editor.resize(450, 150)
        qtbot.waitUntil(lambda: sfa.slider)
    
        # Move the mouse cursor to the center of the scrollflagarea and assert
        # that the slider range indicator is now shown. When the vertical scrollbar
        # of the editor is visible, the slider range indicator should be visible
        # only when the mouse cursor hover above the scrollflagarea.
        x = int(sfa.width()/2)
        y = int(sfa.height()/2)
        qtbot.mouseMove(sfa, pos=QPoint(x, y), delay=-1)
    
>       assert sfa._range_indicator_is_visible is True
E       assert False is True
E        +  where False = <spyder.plugins.editor.panels.scrollflag.ScrollFlagArea object at 0x7f54a643c700>._range_indicator_is_visible

spyder/plugins/editor/panels/tests/test_scrollflag.py:189: AssertionError
=========================== short test summary info ============================
FAILED spyder/plugins/editor/panels/tests/test_scrollflag.py::test_range_indicator_visible_on_hover_only
==================== 1 failed, 2 passed, 1 skipped in 1.28s ====================

So clearly there's some sort of problem here, but I don't know enough about the innards of Spyder to be able to diagnose further.

What is the expected output? What do you see instead?

I expect the test to pass.

Versions

  • Spyder version: 5.2.0
  • Python version: 3.9 and 3.10
  • Qt version: 5.15.2
  • PyQt version: 5.15.6+dfsg-1+b1
  • Operating System name/version: Debian testing and unstable

Dependencies

(The Debian version has removed pyqt5 and pyqtwebengine from the list of dependencies as we are using a newer version of these; 5.13 is very old indeed.)

# Mandatory:
atomicwrites >=1.2.0          :  1.4.0 (OK)
chardet >=2.0.0               :  4.0.0 (OK)
cloudpickle >=0.5.0           :  2.0.0 (OK)
cookiecutter >=1.6.0          :  1.7.3 (OK)
diff_match_patch >=20181111   :  20200713 (OK)
intervaltree >=3.0.2          :  3.0.2 (OK)
IPython >=7.6.0               :  7.27.0 (OK)
jedi >=0.17.2;<0.19.0         :  0.18.0 (OK)
jellyfish >=0.7               :  0.8.9 (OK)
jsonschema >=3.2.0            :  3.2.0 (OK)
keyring >=17.0.0              :  23.3.0 (OK)
nbconvert >=4.0               :  6.1.0 (OK)
numpydoc >=0.6.0              :  1.1.0 (OK)
parso >=0.7.0;<0.9.0          :  0.8.1 (OK)
pexpect >=4.4.0               :  4.8.0 (OK)
pickleshare >=0.4             :  0.7.5 (OK)
psutil >=5.3                  :  5.8.0 (OK)
pygments >=2.0                :  2.7.1 (OK)
pylint >=2.5.0                :  2.12.2 (OK)
pyls_spyder >=0.4.0           :  0.4.0 (OK)
pylsp >=1.3.1;<1.4.0          :  1.3.2 (OK)
pylsp_black >=1.0.0           :  None (OK)
qdarkstyle =3.0.2             :  3.0.2 (OK)
qstylizer >=0.1.10            :  0.2.1 (OK)
qtawesome >=1.0.2             :  1.1.1 (OK)
qtconsole >=5.2.1;<5.3.0      :  5.2.1 (OK)
qtpy >=1.5.0                  :  1.9.0 (OK)
rtree >=0.9.7                 :  0.9.7 (OK)
setuptools >=49.6.0           :  58.2.0 (OK)
sphinx >=0.6.6                :  4.3.1 (OK)
spyder_kernels >=2.2.0;<2.3.0 :  2.2.0 (OK)
textdistance >=4.2.0          :  4.2.2 (OK)
three_merge >=0.1.1           :  0.1.1 (OK)
watchdog >=0.10.3             :  2.1.6 (OK)
xdg >=0.26                    :  0.27 (OK)
zmq >=17                      :  22.3.0 (OK)

# Optional:
cython >=0.21                 :  0.29.24 (OK)
matplotlib >=2.0.0            :  3.3.4 (OK)
numpy >=1.7                   :  1.21.4 (OK)
pandas >=1.1.1                :  1.1.5 (OK)
scipy >=0.17.0                :  1.7.1 (OK)
sympy >=0.7.3                 :  1.7.1 (OK)
@juliangilbey
Copy link
Contributor Author

OK, that's interesting. It's marked as failing when running in a CI environment, so setting CI=true causes the test to be skipped. But when I'm not running in a CI and I just run python3.9 -m pytest spyder/plugins/editor/panels/tests/test_scrollflag.py (with no xvfb), it still fails in the same way.

@juliangilbey juliangilbey mentioned this issue Dec 22, 2021
10 tasks
@ccordoba12 ccordoba12 added this to the v5.2.2 milestone Dec 23, 2021
@ccordoba12
Copy link
Member

This is an easy fix too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants