Skip to content

Commit

Permalink
Add simple regression tests
Browse files Browse the repository at this point in the history
  • Loading branch information
vidartf committed Aug 23, 2021
1 parent bca0379 commit f2ebf17
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 6 deletions.
2 changes: 1 addition & 1 deletion jupyter_server/tests/extension/test_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ def test_stop_extension(jp_serverapp, caplog):

# load extensions (make sure we only have the one extension loaded
jp_serverapp.extension_manager.load_all_extensions()
extension_name = 'jupyter_server.tests.extension.mockextensions'
extension_name = "jupyter_server.tests.extension.mockextensions"
assert list(jp_serverapp.extension_manager.extension_apps) == [extension_name]

# add a stop_extension method for the extension app
Expand Down
41 changes: 40 additions & 1 deletion jupyter_server/tests/extension/test_manager.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os
import unittest.mock as mock

import pytest
from jupyter_core.paths import jupyter_config_path
Expand Down Expand Up @@ -78,7 +79,7 @@ def test_extension_manager_api(jp_serverapp):
jpserver_extensions = {"jupyter_server.tests.extension.mockextensions": True}
manager = ExtensionManager(serverapp=jp_serverapp)
assert manager.config_manager
expected = _normalize_path(os.path.join(jupyter_config_path()[0], 'serverconfig'))
expected = _normalize_path(os.path.join(jupyter_config_path()[0], "serverconfig"))
assert _normalize_path(manager.config_manager.read_config_path[0]) == expected
manager.from_jpserver_extensions(jpserver_extensions)
assert len(manager.extensions) == 1
Expand All @@ -91,3 +92,41 @@ def test_extension_manager_linked_extensions(jp_serverapp):
manager.add_extension(name, enabled=True)
manager.link_extension(name)
assert name in manager.linked_extensions


def test_extension_manager_fail_add(jp_serverapp):
name = "jupyter_server.tests.extension.notanextension"
manager = ExtensionManager(serverapp=jp_serverapp)
manager.add_extension(name, enabled=True) # should only warn
jp_serverapp.reraise_server_extension_failures = True
with pytest.raises(ExtensionModuleNotFound):
manager.add_extension(name, enabled=True)


def test_extension_manager_fail_link(jp_serverapp):
name = "jupyter_server.tests.extension.mockextensions.app"
with mock.patch(
"jupyter_server.tests.extension.mockextensions.app.MockExtensionApp.parse_command_line",
side_effect=RuntimeError,
):
manager = ExtensionManager(serverapp=jp_serverapp)
manager.add_extension(name, enabled=True)
manager.link_extension(name) # should only warn
jp_serverapp.reraise_server_extension_failures = True
with pytest.raises(RuntimeError):
manager.link_extension(name)


def test_extension_manager_fail_load(jp_serverapp):
name = "jupyter_server.tests.extension.mockextensions.app"
with mock.patch(
"jupyter_server.tests.extension.mockextensions.app.MockExtensionApp.initialize_handlers",
side_effect=RuntimeError,
):
manager = ExtensionManager(serverapp=jp_serverapp)
manager.add_extension(name, enabled=True)
manager.link_extension(name)
manager.load_extension(name) # should only warn
jp_serverapp.reraise_server_extension_failures = True
with pytest.raises(RuntimeError):
manager.load_extension(name)
2 changes: 1 addition & 1 deletion jupyter_server/tests/services/kernels/test_cull.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def jp_argv(request):
]


CULL_TIMEOUT = 10 if platform.python_implementation() == "PyPy" else 5
CULL_TIMEOUT = 30 if platform.python_implementation() == "PyPy" else 5
CULL_INTERVAL = 1


Expand Down
6 changes: 3 additions & 3 deletions jupyter_server/tests/test_terminal.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def terminal_path(tmp_path):
shutil.rmtree(str(subdir), ignore_errors=True)


CULL_TIMEOUT = 2
CULL_TIMEOUT = 10
CULL_INTERVAL = 3


Expand Down Expand Up @@ -128,7 +128,7 @@ async def test_terminal_create_with_cwd(jp_fetch, jp_ws_fetch, terminal_path):
message_stdout = ""
while True:
try:
message = await asyncio.wait_for(ws.read_message(), timeout=1.0)
message = await asyncio.wait_for(ws.read_message(), timeout=5.0)
except asyncio.TimeoutError:
break

Expand Down Expand Up @@ -164,7 +164,7 @@ async def test_culling(jp_server_config, jp_fetch):
last_activity = term["last_activity"]

culled = False
for i in range(10): # Culling should occur in a few seconds
for i in range(CULL_TIMEOUT + CULL_INTERVAL):
try:
resp = await jp_fetch(
"api",
Expand Down

0 comments on commit f2ebf17

Please sign in to comment.