Skip to content

Commit

Permalink
Ensure session arguments are correctly parsed by Jupyter executor (#5106
Browse files Browse the repository at this point in the history
)

* Ensure session arguments are correctly parsed by Jupyter executor

* Remove traceback

* Add test
  • Loading branch information
philippjfr authored Jun 13, 2023
1 parent d04fbce commit 31e2d9e
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 8 deletions.
2 changes: 1 addition & 1 deletion panel/io/jupyter_executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ def _create_server_session(self) -> ServerSession:

# using private attr so users only have access to a read-only property
session_context._request = _RequestProxy(
arguments={k: [v.encode('utf-8') for v in vs] for k, vs in self.payload.get('arguments', {})},
arguments={k: [v.encode('utf-8') for v in vs] for k, vs in self.payload.get('arguments', {}).items()},
cookies=self.payload.get('cookies'),
headers=self.payload.get('headers')
)
Expand Down
18 changes: 11 additions & 7 deletions panel/tests/ui/io/test_jupyter_server_extension.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import sys

import pytest

try:
from playwright.sync_api import expect
except ImportError:
pytestmark = pytest.mark.skip('playwright not available')

from panel.tests.util import wait_until

pytestmark = pytest.mark.jupyter

not_windows = pytest.mark.skipif(sys.platform=='win32', reason="Does not work on Windows")

@not_windows
@pytest.mark.flaky(max_runs=3)
def test_jupyter_server(page, jupyter_preview):
page.goto(f"{jupyter_preview}/app.py", timeout=30000)
Expand All @@ -23,15 +23,13 @@ def test_jupyter_server(page, jupyter_preview):

wait_until(lambda: page.text_content('pre') == '2', page)

@not_windows
@pytest.mark.flaky(max_runs=3)
def test_jupyter_server_custom_resources(page, jupyter_preview):
page.goto(f"{jupyter_preview}/app.py", timeout=30000)

assert page.locator('.bk-Row').evaluate("""(element) =>
window.getComputedStyle(element).getPropertyValue('background-color')""") == 'rgb(128, 0, 128)'

@not_windows
@pytest.mark.flaky(max_runs=3)
def test_jupyter_server_kernel_error(page, jupyter_preview):
page.goto(f"{jupyter_preview}/app.py?kernel=blah", timeout=30000)
Expand All @@ -45,3 +43,9 @@ def test_jupyter_server_kernel_error(page, jupyter_preview):
page.click('button')

wait_until(lambda: page.text_content('pre') == '1', page)

@pytest.mark.flaky(max_runs=3)
def test_jupyter_server_session_arg_theme(page, jupyter_preview):
page.goto(f"{jupyter_preview}/app.py?theme=dark", timeout=30000)

expect(page.locator('body')).to_have_css('color', 'rgb(0, 0, 0)')

0 comments on commit 31e2d9e

Please sign in to comment.