You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.4 KiB
44 lines
1.4 KiB
from unittest import TestCase
|
|
from traitlets.config.manager import BaseJSONConfigManager
|
|
from notebook.serverextensions import toggle_serverextension_python
|
|
from notebook.nbextensions import _get_config_dir
|
|
|
|
class TestInstallServerExtension(TestCase):
|
|
def _inject_mock_extension(self):
|
|
outer_file = __file__
|
|
class mock():
|
|
__file__ = outer_file
|
|
|
|
@staticmethod
|
|
def _jupyter_server_extension_paths():
|
|
return [{
|
|
'require': '_mockdestination/index'
|
|
}]
|
|
|
|
import sys
|
|
sys.modules['mockextension'] = mock
|
|
|
|
def _get_config(self, user=False):
|
|
cm = BaseJSONConfigManager(config_dir=_get_config_dir(user=True))
|
|
data = cm.get("jupyter_notebook_config")
|
|
return (
|
|
data.setdefault("NotebookApp", {})
|
|
.setdefault("nbserver_extensions", {})
|
|
)
|
|
|
|
def test_enable(self):
|
|
self._inject_mock_extension()
|
|
toggle_serverextension_python('mockextension', True, user=True)
|
|
|
|
config = self._get_config()
|
|
assert config['mockextension']
|
|
|
|
def test_disable(self):
|
|
self._inject_mock_extension()
|
|
toggle_serverextension_python('mockextension', True, user=True)
|
|
toggle_serverextension_python('mockextension', False, user=True)
|
|
|
|
config = self._get_config()
|
|
assert not config['mockextension']
|
|
|