jupyterhub / jupyter-server-proxy

Jupyter notebook server extension to proxy web services.
https://jupyter-server-proxy.readthedocs.io
BSD 3-Clause "New" or "Revised" License
351 stars 148 forks source link

Test failures in main branch #449

Closed consideRatio closed 8 months ago

consideRatio commented 8 months ago

There are acceptance test failures in main branch (example here).

A key part of the failure is:

==============================================================================
Acceptance.Notebook :: Server Proxies in Notebook                             
==============================================================================
Notebook Loads                                                        | PASS |
------------------------------------------------------------------------------
Launch Browser Tab                                                    | FAIL |
Element with locator 'xpath://div[contains(@class, "jp-FileBrowser-toolbar")]//*[contains(text(), "New")]' not found.
------------------------------------------------------------------------------
Launch Another Browser Tab                                            | FAIL |
Element with locator 'xpath://div[contains(@class, "jp-FileBrowser-toolbar")]//*[contains(text(), "New")]' not found.

They seem to show up due to this part:

https://github.com/jupyterhub/jupyter-server-proxy/blob/9b624c4d9507176334b46a85d94a4aa3bcd29bed/tests/acceptance/Notebook.robot#L11-L13

And specifically with notebook==7.1.1 but not with notebook==7.0.8.

I understand those expressions to be selecting a specific HTML element, but I think if it worked once it should work later as I see no difference in the HTML looking at it with old/new versions.

image image

consideRatio commented 8 months ago

@bollwyvl I'm stumped, it sais Element with locator 'xpath://div[contains(@class, "jp-FileBrowser-toolbar")]//*[contains(text(), "New")]' not found. when using notebook==7.1.* but not when using notebook==7.0.*.

I tried opening a chrome inspector console and doing $x(......) stuff in order to see if I could reproduce the difference, but I ended up getting an empty [] response no matter if I've used notebook==7.1.* or 7.0.*. I don't understand xpath expressions yet or if this debugging strategy was reasonable =/

Do you have ideas on debugging / resolving this issue?

bollwyvl commented 8 months ago

yes, 4.1 and 7.1 created breaking changes in the DOM.

consideRatio commented 8 months ago

@bollwyvl ah thanks, I'm making progress now!

manics commented 8 months ago

I think this could be a good case for using dependabot to pin some dependencies for CI testing. Keep the dev dependencies unrestricted in pyproject.toml, but use a separate dev-ci-requirements.txt file for CI only and let dependabot tell us when there's a UI change in lab or notebook.