Skip to content

Commit d289632

Browse files
authored
Set terminals_available to False when not enabled (#105)
* Set terminals_available False when not enabled * Add some testing on fields * Update comments
1 parent 93a84aa commit d289632

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

jupyter_server_terminals/app.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ class TerminalsExtensionApp(ExtensionApp):
3737
def initialize_settings(self) -> None:
3838
"""Initialize settings."""
3939
if not self.serverapp or not self.serverapp.terminals_enabled:
40+
self.settings.update({"terminals_available": False})
4041
return
4142
self.initialize_configurables()
4243
self.settings.update(
@@ -73,8 +74,15 @@ def initialize_configurables(self) -> None:
7374

7475
def initialize_handlers(self) -> None:
7576
"""Initialize handlers."""
76-
if not self.serverapp or not self.serverapp.terminals_enabled:
77-
# Checking self.terminals_available instead breaks enabling terminals
77+
if not self.serverapp:
78+
# Already set `terminals_available` as `False` in `initialize_settings`
79+
return
80+
81+
if not self.serverapp.terminals_enabled:
82+
# webapp settings for backwards compat (used by nbclassic), #12
83+
self.serverapp.web_app.settings["terminals_available"] = self.settings[
84+
"terminals_available"
85+
]
7886
return
7987
self.handlers.append(
8088
(

tests/test_disable_app.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import pytest
2+
from traitlets.config.loader import Config
3+
4+
5+
@pytest.fixture()
6+
def jp_server_config():
7+
return Config({"ServerApp": {"terminals_enabled": False}})
8+
9+
10+
async def test_not_enabled(jp_configurable_serverapp):
11+
assert jp_configurable_serverapp().terminals_enabled is False
12+
assert jp_configurable_serverapp().web_app.settings["terminals_available"] is False
13+
assert "terminal_manager" not in jp_configurable_serverapp().web_app.settings

tests/test_terminal.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,12 @@ async def test_terminal_create_with_bad_cwd(jp_fetch, jp_ws_fetch):
236236
assert non_existing_path not in message_stdout
237237

238238

239+
async def test_app_config(jp_configurable_serverapp):
240+
assert jp_configurable_serverapp().terminals_enabled is True
241+
assert jp_configurable_serverapp().web_app.settings["terminals_available"] is True
242+
assert jp_configurable_serverapp().web_app.settings["terminal_manager"]
243+
244+
239245
async def test_culling_config(jp_configurable_serverapp):
240246
terminal_mgr_config = jp_configurable_serverapp().config.ServerApp.TerminalManager
241247
assert terminal_mgr_config.cull_inactive_timeout == CULL_TIMEOUT

0 commit comments

Comments
 (0)