Skip to content

Commit

Permalink
update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Steven Silvester committed Oct 21, 2021
1 parent 1136d42 commit 72b500d
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 22 deletions.
11 changes: 9 additions & 2 deletions jupyter_server/tests/services/kernels/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,12 @@ async def test_default_kernels(jp_fetch, jp_base_url, jp_cleanup_subprocesses):
await jp_cleanup_subprocesses()


async def test_main_kernel_handler(jp_fetch, jp_base_url, jp_cleanup_subprocesses):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_main_kernel_handler(
jp_fetch, jp_base_url, jp_cleanup_subprocesses, jp_serverapp, use_pending_kernels
):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels

# Start the first kernel
r = await jp_fetch(
"api", "kernels", method="POST", body=json.dumps({"name": NATIVE_KERNEL_NAME})
Expand Down Expand Up @@ -102,7 +107,9 @@ async def test_main_kernel_handler(jp_fetch, jp_base_url, jp_cleanup_subprocesse
await jp_cleanup_subprocesses()


async def test_kernel_handler(jp_fetch, jp_cleanup_subprocesses):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_kernel_handler(jp_fetch, jp_cleanup_subprocesses, jp_serverapp, use_pending_kernels):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels
# Create a kernel
r = await jp_fetch(
"api", "kernels", method="POST", body=json.dumps({"name": NATIVE_KERNEL_NAME})
Expand Down
85 changes: 73 additions & 12 deletions jupyter_server/tests/services/sessions/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,11 @@ def assert_session_equality(actual, expected):
assert_kernel_equality(actual["kernel"], expected["kernel"])


async def test_create(session_client, jp_base_url, jp_cleanup_subprocesses):
@pytest.mark.parametrize("use_pending_kernels", (True, False))
async def test_create(
session_client, jp_base_url, jp_cleanup_subprocesses, jp_serverapp, use_pending_kernels
):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels
# Make sure no sessions exist.
resp = await session_client.list()
sessions = j(resp)
Expand All @@ -168,6 +172,14 @@ async def test_create(session_client, jp_base_url, jp_cleanup_subprocesses):
jp_base_url, "/api/sessions/", new_session["id"]
)

# Make sure kernel is in expected state
kid = new_session["kernel"]["id"]
kernel = jp_serverapp.kernel_manager.get_kernel(kid)
if isinstance(jp_serverapp.kernel_manager, AsyncMappingKernelManager):
assert kernel.ready.done() == (not use_pending_kernels)
else:
assert kernel.ready.done()

# Check that the new session appears in list.
resp = await session_client.list()
sessions = j(resp)
Expand All @@ -185,7 +197,11 @@ async def test_create(session_client, jp_base_url, jp_cleanup_subprocesses):
await jp_cleanup_subprocesses()


async def test_create_file_session(session_client, jp_cleanup_subprocesses):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_create_file_session(
session_client, jp_cleanup_subprocesses, jp_serverapp, use_pending_kernels
):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels
resp = await session_client.create("foo/nb1.py", type="file")
assert resp.code == 201
newsession = j(resp)
Expand All @@ -195,7 +211,11 @@ async def test_create_file_session(session_client, jp_cleanup_subprocesses):
await jp_cleanup_subprocesses()


async def test_create_console_session(session_client, jp_cleanup_subprocesses):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_create_console_session(
session_client, jp_cleanup_subprocesses, jp_serverapp, use_pending_kernels
):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels
resp = await session_client.create("foo/abc123", type="console")
assert resp.code == 201
newsession = j(resp)
Expand All @@ -206,7 +226,11 @@ async def test_create_console_session(session_client, jp_cleanup_subprocesses):
await jp_cleanup_subprocesses()


async def test_create_deprecated(session_client, jp_cleanup_subprocesses):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_create_deprecated(
session_client, jp_cleanup_subprocesses, jp_serverapp, use_pending_kernels
):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels
resp = await session_client.create_deprecated("foo/nb1.ipynb")
assert resp.code == 201
newsession = j(resp)
Expand All @@ -218,9 +242,16 @@ async def test_create_deprecated(session_client, jp_cleanup_subprocesses):
await jp_cleanup_subprocesses()


@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_create_with_kernel_id(
session_client, jp_fetch, jp_base_url, jp_cleanup_subprocesses
session_client,
jp_fetch,
jp_base_url,
jp_cleanup_subprocesses,
jp_serverapp,
use_pending_kernels,
):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels
# create a new kernel
resp = await jp_fetch("api/kernels", method="POST", allow_nonstandard_methods=True)
kernel = j(resp)
Expand Down Expand Up @@ -250,7 +281,9 @@ async def test_create_with_kernel_id(
await jp_cleanup_subprocesses()


async def test_delete(session_client, jp_cleanup_subprocesses):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_delete(session_client, jp_cleanup_subprocesses, jp_serverapp, use_pending_kernels):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels
resp = await session_client.create("foo/nb1.ipynb")
newsession = j(resp)
sid = newsession["id"]
Expand All @@ -270,7 +303,11 @@ async def test_delete(session_client, jp_cleanup_subprocesses):
await jp_cleanup_subprocesses()


async def test_modify_path(session_client, jp_cleanup_subprocesses):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_modify_path(
session_client, jp_cleanup_subprocesses, jp_serverapp, use_pending_kernels
):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels
resp = await session_client.create("foo/nb1.ipynb")
newsession = j(resp)
sid = newsession["id"]
Expand All @@ -284,7 +321,11 @@ async def test_modify_path(session_client, jp_cleanup_subprocesses):
await jp_cleanup_subprocesses()


async def test_modify_path_deprecated(session_client, jp_cleanup_subprocesses):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_modify_path_deprecated(
session_client, jp_cleanup_subprocesses, jp_serverapp, use_pending_kernels
):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels
resp = await session_client.create("foo/nb1.ipynb")
newsession = j(resp)
sid = newsession["id"]
Expand All @@ -298,7 +339,11 @@ async def test_modify_path_deprecated(session_client, jp_cleanup_subprocesses):
await jp_cleanup_subprocesses()


async def test_modify_type(session_client, jp_cleanup_subprocesses):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_modify_type(
session_client, jp_cleanup_subprocesses, jp_serverapp, use_pending_kernels
):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels
resp = await session_client.create("foo/nb1.ipynb")
newsession = j(resp)
sid = newsession["id"]
Expand All @@ -312,7 +357,11 @@ async def test_modify_type(session_client, jp_cleanup_subprocesses):
await jp_cleanup_subprocesses()


async def test_modify_kernel_name(session_client, jp_fetch, jp_cleanup_subprocesses):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_modify_kernel_name(
session_client, jp_fetch, jp_cleanup_subprocesses, jp_serverapp, use_pending_kernels
):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels
resp = await session_client.create("foo/nb1.ipynb")
before = j(resp)
sid = before["id"]
Expand All @@ -335,7 +384,11 @@ async def test_modify_kernel_name(session_client, jp_fetch, jp_cleanup_subproces
await jp_cleanup_subprocesses()


async def test_modify_kernel_id(session_client, jp_fetch, jp_cleanup_subprocesses):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_modify_kernel_id(
session_client, jp_fetch, jp_cleanup_subprocesses, jp_serverapp, use_pending_kernels
):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels
resp = await session_client.create("foo/nb1.ipynb")
before = j(resp)
sid = before["id"]
Expand Down Expand Up @@ -366,9 +419,17 @@ async def test_modify_kernel_id(session_client, jp_fetch, jp_cleanup_subprocesse
await jp_cleanup_subprocesses()


@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_restart_kernel(
session_client, jp_base_url, jp_fetch, jp_ws_fetch, jp_cleanup_subprocesses
session_client,
jp_base_url,
jp_fetch,
jp_ws_fetch,
jp_cleanup_subprocesses,
jp_serverapp,
use_pending_kernels,
):
jp_serverapp.kernel_manager.use_pending_kernels = use_pending_kernels

# Create a session.
resp = await session_client.create("foo/nb1.ipynb")
Expand Down
32 changes: 24 additions & 8 deletions jupyter_server/tests/services/sessions/test_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,9 @@ async def create_multiple_sessions(session_manager, *kwargs_list):
return sessions


async def test_get_session(session_manager):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_get_session(session_manager, use_pending_kernels):
session_manager.kernel_manager.use_pending_kernels = use_pending_kernels
session = await session_manager.create_session(
path="/path/to/test.ipynb", kernel_name="bar", type="notebook"
)
Expand Down Expand Up @@ -84,7 +86,9 @@ async def test_bad_get_session(session_manager):
await session_manager.get_session(bad_id=session["id"])


async def test_get_session_dead_kernel(session_manager):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_get_session_dead_kernel(session_manager, use_pending_kernels):
session_manager.kernel_manager.use_pending_kernels = use_pending_kernels
session = await session_manager.create_session(
path="/path/to/1/test1.ipynb", kernel_name="python", type="notebook"
)
Expand All @@ -97,7 +101,9 @@ async def test_get_session_dead_kernel(session_manager):
assert listed == []


async def test_list_session(session_manager):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_list_session(session_manager, use_pending_kernels):
session_manager.kernel_manager.use_pending_kernels = use_pending_kernels
sessions = await create_multiple_sessions(
session_manager,
dict(path="/path/to/1/test1.ipynb", kernel_name="python"),
Expand Down Expand Up @@ -150,7 +156,9 @@ async def test_list_session(session_manager):
assert sessions == expected


async def test_list_sessions_dead_kernel(session_manager):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_list_sessions_dead_kernel(session_manager, use_pending_kernels):
session_manager.kernel_manager.use_pending_kernels = use_pending_kernels
sessions = await create_multiple_sessions(
session_manager,
dict(path="/path/to/1/test1.ipynb", kernel_name="python"),
Expand Down Expand Up @@ -178,7 +186,9 @@ async def test_list_sessions_dead_kernel(session_manager):
assert listed == expected


async def test_update_session(session_manager):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_update_session(session_manager, use_pending_kernels):
session_manager.kernel_manager.use_pending_kernels = use_pending_kernels
session = await session_manager.create_session(
path="/path/to/test.ipynb", kernel_name="julia", type="notebook"
)
Expand All @@ -202,7 +212,9 @@ async def test_update_session(session_manager):
assert model == expected


async def test_bad_update_session(session_manager):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_bad_update_session(session_manager, use_pending_kernels):
session_manager.kernel_manager.use_pending_kernels = use_pending_kernels
# try to update a session with a bad keyword ~ raise error
session = await session_manager.create_session(
path="/path/to/test.ipynb", kernel_name="ir", type="notegbook"
Expand All @@ -214,7 +226,9 @@ async def test_bad_update_session(session_manager):
) # Bad keyword


async def test_delete_session(session_manager):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_delete_session(session_manager, use_pending_kernels):
session_manager.kernel_manager.use_pending_kernels = use_pending_kernels
sessions = await create_multiple_sessions(
session_manager,
dict(path="/path/to/1/test1.ipynb", kernel_name="python"),
Expand Down Expand Up @@ -255,7 +269,9 @@ async def test_delete_session(session_manager):
assert new_sessions == expected


async def test_bad_delete_session(session_manager):
@pytest.mark.parametrize("use_pending_kernels", (False, True))
async def test_bad_delete_session(session_manager, use_pending_kernels):
session_manager.kernel_manager.use_pending_kernels = use_pending_kernels
# try to delete a session that doesn't exist ~ raise error
await session_manager.create_session(
path="/path/to/test.ipynb", kernel_name="python", type="notebook"
Expand Down

0 comments on commit 72b500d

Please sign in to comment.