コード例 #1
0
    def test_app_dir_shadowing(self):
        app_dir = self.tempdir()
        sys_dir = self.app_dir
        if os.path.exists(sys_dir):
            os.removedirs(sys_dir)

        assert install_extension(self.mock_extension) is True
        sys_path = pjoin(sys_dir, 'extensions', '*.tgz')
        assert glob.glob(sys_path)
        app_path = pjoin(app_dir, 'extensions', '*.tgz')
        assert not glob.glob(app_path)
        extensions = get_app_info(app_dir)['extensions']
        ext_name = self.pkg_names['extension']
        assert ext_name in extensions
        assert check_extension(ext_name, app_dir)

        assert install_extension(self.mock_extension, app_dir) is True
        assert glob.glob(app_path)
        extensions = get_app_info(app_dir)['extensions']
        assert ext_name in extensions
        assert check_extension(ext_name, app_dir)

        assert uninstall_extension(self.pkg_names['extension'], app_dir) is True
        assert not glob.glob(app_path)
        assert glob.glob(sys_path)
        extensions = get_app_info(app_dir)['extensions']
        assert ext_name in extensions
        assert check_extension(ext_name, app_dir)

        assert uninstall_extension(self.pkg_names['extension'], app_dir) is True
        assert not glob.glob(app_path)
        assert not glob.glob(sys_path)
        extensions = get_app_info(app_dir)['extensions']
        assert ext_name not in extensions
        assert not check_extension(ext_name, app_dir)
コード例 #2
0
    def test_app_dir(self):
        app_dir = self.tempdir()

        assert install_extension(self.mock_extension, app_dir) is True
        path = pjoin(app_dir, 'extensions', '*.tgz')
        assert glob.glob(path)
        extensions = get_app_info(app_dir)['extensions']
        ext_name = self.pkg_names['extension']
        assert ext_name in extensions
        assert check_extension(ext_name, app_dir)

        assert uninstall_extension(self.pkg_names['extension'], app_dir) is True
        path = pjoin(app_dir, 'extensions', '*.tgz')
        assert not glob.glob(path)
        extensions = get_app_info(app_dir)['extensions']
        assert ext_name not in extensions
        assert not check_extension(ext_name, app_dir)

        assert link_package(self.mock_package, app_dir) is True
        linked = get_app_info(app_dir)['linked_packages']
        pkg_name = self.pkg_names['package']
        assert pkg_name in linked
        assert check_extension(pkg_name, app_dir)

        assert unlink_package(self.mock_package, app_dir) is True
        linked = get_app_info(app_dir)['linked_packages']
        assert pkg_name not in linked
        assert not check_extension(pkg_name, app_dir)
コード例 #3
0
    def test_install_mime_renderer(self):
        install_extension(self.mock_mimeextension)
        name = self.pkg_names['mimeextension']
        assert name in get_app_info(self.app_dir)['extensions']
        assert check_extension(name)

        assert uninstall_extension(name) is True
        assert name not in get_app_info(self.app_dir)['extensions']
        assert not check_extension(name)
コード例 #4
0
 def test_link_package(self):
     path = self.mock_package
     name = self.pkg_names['package']
     assert link_package(path) is True
     app_dir = self.app_dir
     linked = get_app_info(app_dir)['linked_packages']
     assert name in linked
     assert name not in get_app_info(app_dir)['extensions']
     assert check_extension(name)
     assert unlink_package(path)
     linked = get_app_info(app_dir)['linked_packages']
     assert name not in linked
     assert not check_extension(name)
コード例 #5
0
 def test_unlink_package(self):
     target = self.mock_package
     assert link_package(target) is True
     assert unlink_package(target) is True
     linked = get_app_info(self.app_dir)['linked_packages']
     name = self.pkg_names['package']
     assert name not in linked
     assert not check_extension(name)
コード例 #6
0
 def test_install_extension(self):
     assert install_extension(self.mock_extension) is True
     path = pjoin(self.app_dir, 'extensions', '*.tgz')
     assert glob.glob(path)
     extensions = get_app_info(self.app_dir)['extensions']
     name = self.pkg_names['extension']
     assert name in extensions
     assert check_extension(name)
コード例 #7
0
 def test_disable_extension(self):
     app_dir = self.tempdir()
     assert install_extension(self.mock_extension, app_dir) is True
     assert disable_extension(self.pkg_names['extension'], app_dir) is True
     info = get_app_info(app_dir)
     name = self.pkg_names['extension']
     assert name in info['disabled']
     assert not check_extension(name, app_dir)
     assert check_extension(name, app_dir, True)
     assert disable_extension('@jupyterlab/notebook-extension', app_dir) is True
     info = get_app_info(app_dir)
     assert '@jupyterlab/notebook-extension' in info['disabled']
     assert not check_extension('@jupyterlab/notebook-extension', app_dir)
     assert check_extension('@jupyterlab/notebook-extension', app_dir, True)
     assert name in info['disabled']
     assert not check_extension(name, app_dir)
     assert check_extension(name, app_dir, True)
コード例 #8
0
 def test_install_extension(self):
     assert install_extension(self.mock_extension) is True
     path = pjoin(self.app_dir, 'extensions', '*.tgz')
     assert glob.glob(path)
     extensions = get_app_info()['extensions']
     name = self.pkg_names['extension']
     assert name in extensions
     assert check_extension(name)
コード例 #9
0
 def test_install_twice(self):
     assert install_extension(self.mock_extension) is True
     path = pjoin(self.app_dir, "extensions", "*.tgz")
     assert install_extension(self.mock_extension) is True
     assert glob.glob(path)
     extensions = get_app_info()["extensions"]
     name = self.pkg_names["extension"]
     assert name in extensions
     assert check_extension(name)
コード例 #10
0
 def test_install_twice(self):
     install_extension(self.mock_extension)
     path = pjoin(commands.get_app_dir(), 'extensions', '*.tgz')
     install_extension(self.mock_extension)
     assert glob.glob(path)
     extensions = get_app_info(self.app_dir)['extensions']
     name = self.pkg_names['extension']
     assert name in extensions
     assert check_extension(name)
コード例 #11
0
 def test_install_twice(self):
     install_extension(self.mock_extension)
     path = pjoin(commands.get_app_dir(), 'extensions', '*.tgz')
     install_extension(self.mock_extension)
     assert glob.glob(path)
     extensions = get_app_info(self.app_dir)['extensions']
     name = self.pkg_names['extension']
     assert name in extensions
     assert check_extension(name)
コード例 #12
0
ファイル: test_jupyterlab.py プロジェクト: pudumula/nlp_p2
 def test_disable_extension(self):
     app_dir = self.tempdir()
     assert install_extension(self.mock_extension, app_dir) is True
     assert disable_extension(self.pkg_names['extension'], app_dir) is True
     info = get_app_info(app_dir)
     name = self.pkg_names['extension']
     assert name in info['disabled']
     assert not check_extension(name, app_dir)
     assert check_extension(name, app_dir, True)
     assert disable_extension('@jupyterlab/notebook-extension',
                              app_dir) is True
     info = get_app_info(app_dir)
     assert '@jupyterlab/notebook-extension' in info['disabled']
     assert not check_extension('@jupyterlab/notebook-extension', app_dir)
     assert check_extension('@jupyterlab/notebook-extension', app_dir, True)
     assert name in info['disabled']
     assert not check_extension(name, app_dir)
     assert check_extension(name, app_dir, True)
コード例 #13
0
 def test_install_failed(self):
     path = self.mock_package
     with pytest.raises(ValueError):
         install_extension(path)
     with open(pjoin(path, 'package.json')) as fid:
         data = json.load(fid)
     extensions = get_app_info(self.app_dir)['extensions']
     name = data['name']
     assert name not in extensions
     assert not check_extension(name)
コード例 #14
0
 def test_uninstall_extension(self):
     install_extension(self.mock_extension)
     name = self.pkg_names['extension']
     assert check_extension(name)
     uninstall_extension(self.pkg_names['extension'])
     path = pjoin(self.app_dir, 'extensions', '*.tgz')
     assert not glob.glob(path)
     extensions = get_app_info(self.app_dir)['extensions']
     assert name not in extensions
     assert not check_extension(name)
コード例 #15
0
 def test_uninstall_extension(self):
     install_extension(self.mock_extension)
     name = self.pkg_names['extension']
     assert check_extension(name)
     uninstall_extension(self.pkg_names['extension'])
     path = pjoin(self.app_dir, 'extensions', '*.tgz')
     assert not glob.glob(path)
     extensions = get_app_info(self.app_dir)['extensions']
     assert name not in extensions
     assert not check_extension(name)
コード例 #16
0
ファイル: test_jupyterlab.py プロジェクト: edithkk/jupyterlab
 def test_enable_extension(self):
     app_dir = self.tempdir()
     install_extension(self.mock_extension, app_dir)
     disable_extension(self.pkg_names['extension'], app_dir)
     enable_extension(self.pkg_names['extension'], app_dir)
     info = get_app_info(app_dir)
     assert self.pkg_names['extension'] not in info['disabled']
     disable_extension('@jupyterlab/notebook-extension', app_dir)
     assert self.pkg_names['extension'] not in info['disabled']
     assert '@jupyterlab/notebook-extension' not in info['disabled']
コード例 #17
0
 def test_install_failed(self):
     path = self.mock_package
     with pytest.raises(ValueError):
         install_extension(path)
     with open(pjoin(path, 'package.json')) as fid:
         data = json.load(fid)
     extensions = get_app_info()['extensions']
     name = data['name']
     assert name not in extensions
     assert not check_extension(name)
コード例 #18
0
ファイル: test_jupyterlab.py プロジェクト: edithkk/jupyterlab
    def test_app_dir_use_sys_prefix(self):
        app_dir = self.tempdir()
        if os.path.exists(self.app_dir):
            os.removedirs(self.app_dir)

        install_extension(self.mock_extension)
        path = pjoin(app_dir, 'extensions', '*.tgz')
        assert not glob.glob(path)
        extensions = get_app_info(app_dir)['extensions']
        assert self.pkg_names['extension'] in extensions
コード例 #19
0
ファイル: test_jupyterlab.py プロジェクト: afshin/jupyterlab
 def test_uninstall_all_extensions(self):
     install_extension(self.mock_extension)
     install_extension(self.mock_mimeextension)
     ext_name = self.pkg_names['extension']
     mime_ext_name = self.pkg_names['mimeextension']
     assert check_extension(ext_name) is True
     assert check_extension(mime_ext_name) is True
     assert uninstall_extension(all_=True) is True
     extensions = get_app_info(self.app_dir)['extensions']
     assert ext_name not in extensions
     assert mime_ext_name not in extensions
コード例 #20
0
 def test_uninstall_all_extensions(self):
     install_extension(self.mock_extension)
     install_extension(self.mock_mimeextension)
     ext_name = self.pkg_names['extension']
     mime_ext_name = self.pkg_names['mimeextension']
     assert check_extension(ext_name) is True
     assert check_extension(mime_ext_name) is True
     assert uninstall_extension(all_=True) is True
     extensions = get_app_info()['extensions']
     assert ext_name not in extensions
     assert mime_ext_name not in extensions
コード例 #21
0
    def test_app_dir_use_sys_prefix(self):
        app_dir = self.tempdir()
        if os.path.exists(self.app_dir):
            os.removedirs(self.app_dir)

        assert install_extension(self.mock_extension) is True
        path = pjoin(app_dir, 'extensions', '*.tgz')
        assert not glob.glob(path)
        extensions = get_app_info(app_dir)['extensions']
        ext_name = self.pkg_names['extension']
        assert ext_name in extensions
        assert check_extension(ext_name, app_dir)
コード例 #22
0
ファイル: test_jupyterlab.py プロジェクト: edithkk/jupyterlab
    def test_app_dir(self):
        app_dir = self.tempdir()

        install_extension(self.mock_extension, app_dir)
        path = pjoin(app_dir, 'extensions', '*.tgz')
        assert glob.glob(path)
        extensions = get_app_info(app_dir)['extensions']
        assert self.pkg_names['extension'] in extensions

        uninstall_extension(self.pkg_names['extension'], app_dir)
        path = pjoin(app_dir, 'extensions', '*.tgz')
        assert not glob.glob(path)
        extensions = get_app_info(app_dir)['extensions']
        assert self.pkg_names['extension'] not in extensions

        link_package(self.mock_package, app_dir)
        linked = get_app_info(app_dir)['linked_packages']
        assert self.pkg_names['package'] in linked

        unlink_package(self.mock_package, app_dir)
        linked = get_app_info(app_dir)['linked_packages']
        assert self.pkg_names['package'] not in linked
コード例 #23
0
    def test_app_dir_disable_sys_prefix(self):
        app_dir = self.tempdir()
        options = AppOptions(app_dir=app_dir, use_sys_dir=False)
        if os.path.exists(self.app_dir):
            os.removedirs(self.app_dir)

        assert install_extension(self.mock_extension) is True
        path = pjoin(app_dir, 'extensions', '*.tgz')
        assert not glob.glob(path)
        extensions = get_app_info(app_options=options)['extensions']
        ext_name = self.pkg_names['extension']
        assert ext_name not in extensions
        assert not check_extension(ext_name, app_options=options)
コード例 #24
0
    def test_app_dir_shadowing(self):
        app_dir = self.tempdir()
        sys_dir = self.app_dir
        app_options = AppOptions(app_dir=app_dir)
        if os.path.exists(sys_dir):
            os.removedirs(sys_dir)

        assert install_extension(self.mock_extension) is True
        sys_path = pjoin(sys_dir, 'extensions', '*.tgz')
        assert glob.glob(sys_path)
        app_path = pjoin(app_dir, 'extensions', '*.tgz')
        assert not glob.glob(app_path)
        extensions = get_app_info(app_options=app_options)['extensions']
        ext_name = self.pkg_names['extension']
        assert ext_name in extensions
        assert check_extension(ext_name, app_options=app_options)

        assert install_extension(self.mock_extension,
                                 app_options=app_options) is True
        assert glob.glob(app_path)
        extensions = get_app_info(app_options=app_options)['extensions']
        assert ext_name in extensions
        assert check_extension(ext_name, app_options=app_options)

        assert uninstall_extension(self.pkg_names['extension'],
                                   app_options=app_options) is True
        assert not glob.glob(app_path)
        assert glob.glob(sys_path)
        extensions = get_app_info(app_options=app_options)['extensions']
        assert ext_name in extensions
        assert check_extension(ext_name, app_options=app_options)

        assert uninstall_extension(self.pkg_names['extension'],
                                   app_options=app_options) is True
        assert not glob.glob(app_path)
        assert not glob.glob(sys_path)
        extensions = get_app_info(app_options=app_options)['extensions']
        assert ext_name not in extensions
        assert not check_extension(ext_name, app_options=app_options)
コード例 #25
0
ファイル: test_jupyterlab.py プロジェクト: gtr8/jupyterlab
 def test_enable_extension(self):
     options = AppOptions(app_dir=self.tempdir())
     assert install_extension(self.mock_extension, app_options=options) is True
     assert disable_extension(self.pkg_names['extension'], app_options=options) is True
     assert enable_extension(self.pkg_names['extension'], app_options=options) is True
     info = get_app_info(app_options=options)
     assert '@jupyterlab/notebook-extension' not in info['disabled']
     name = self.pkg_names['extension']
     assert info['disabled'].get(name, False) is False
     assert check_extension(name, app_options=options)
     assert disable_extension('@jupyterlab/notebook-extension', app_options=options) is True
     assert check_extension(name, app_options=options)
     assert not check_extension('@jupyterlab/notebook-extension', app_options=options)
コード例 #26
0
    def test_app_dir_use_sys_prefix(self):
        app_dir = self.tempdir()
        options = AppOptions(app_dir=app_dir)
        if os.path.exists(self.app_dir):
            os.removedirs(self.app_dir)

        assert install_extension(self.mock_extension) is True
        path = pjoin(app_dir, "extensions", "*.tgz")
        assert not glob.glob(path)
        extensions = get_app_info(app_options=options)["extensions"]
        ext_name = self.pkg_names["extension"]
        assert ext_name in extensions
        assert check_extension(ext_name, app_options=options)
コード例 #27
0
 def test_disable_extension(self):
     options = AppOptions(app_dir=self.tempdir())
     assert install_extension(self.mock_extension,
                              app_options=options) is True
     assert disable_extension(self.pkg_names["extension"],
                              app_options=options) is True
     info = get_app_info(app_options=options)
     name = self.pkg_names["extension"]
     assert info["disabled"].get(name) is True
     assert not check_extension(name, app_options=options)
     assert check_extension(name, installed=True, app_options=options)
     assert disable_extension("@jupyterlab/notebook-extension",
                              app_options=options) is True
     info = get_app_info(app_options=options)
     assert info["disabled"].get("@jupyterlab/notebook-extension") is True
     assert not check_extension("@jupyterlab/notebook-extension",
                                app_options=options)
     assert check_extension("@jupyterlab/notebook-extension",
                            installed=True,
                            app_options=options)
     assert info["disabled"].get(name) is True
     assert not check_extension(name, app_options=options)
     assert check_extension(name, installed=True, app_options=options)
コード例 #28
0
    def test_install_and_uninstall_pinned(self):
        """
        You should be able to install different versions of the same extension with different
        pinned names and uninstall them with those names.
        """
        NAMES = ['test-1', 'test-2']
        assert install_extension(self.pinned_packages[0], pin=NAMES[0])
        assert install_extension(self.pinned_packages[1], pin=NAMES[1])

        extensions = get_app_info()['extensions']
        assert NAMES[0] in extensions
        assert NAMES[1] in extensions
        assert check_extension(NAMES[0])
        assert check_extension(NAMES[1])

        # Uninstall
        assert uninstall_extension(NAMES[0])
        assert uninstall_extension(NAMES[1])

        extensions = get_app_info()['extensions']
        assert NAMES[0] not in extensions
        assert NAMES[1] not in extensions
        assert not check_extension(NAMES[0])
        assert not check_extension(NAMES[1])
コード例 #29
0
 def list_extensions(self):
     """Handle a request for all installed extensions"""
     info = get_app_info(app_dir=self.app_dir, logger=self.log)
     build_check_info = _build_check_info(self.app_dir, self.log)
     _ensure_compat_errors(info, self.app_dir, self.log)
     extensions = []
     # TODO: Ensure loops can run in parallel
     for name, data in info['extensions'].items():
         status = 'ok'
         pkg_info = yield self._get_pkg_info(name, data)
         if info['compat_errors'].get(name, None):
             status = 'error'
         else:
             for packages in build_check_info.values():
                 if name in packages:
                     status = 'warning'
         extensions.append(_make_extension_entry(
             name=name,
             description=pkg_info['description'],
             enabled=(name not in info['disabled']),
             core=False,
             # Use wanted version to ensure we limit ourselves
             # within semver restrictions
             latest_version=pkg_info['latest_version'],
             installed_version=data['version'],
             status=status,
         ))
     for name in build_check_info['uninstall']:
         data = yield self._get_scheduled_uninstall_info(name)
         extensions.append(_make_extension_entry(
             name=name,
             description=data['description'],
             installed=False,
             enabled=False,
             core=False,
             latest_version=data['version'],
             installed_version=data['version'],
             status='warning',
         ))
     raise gen.Return(extensions)
コード例 #30
0
def load_config(nbapp):
    app_url = '/' if nbapp.file_to_run else '/phoila'
    config = LabConfig(app_url=app_url, tree_url="/voila/tree")
    app_dir = getattr(nbapp, "app_dir", get_app_dir(default=APP_DIR_DEFAULT))

    info = get_app_info(app_dir)
    static_url = info["staticUrl"]
    user_settings_dir = getattr(
        nbapp,
        "user_settings_dir",
        get_user_settings_dir(default=USER_SETTINGS_DIR_DEFAULT),
    )
    workspaces_dir = getattr(
        nbapp, "workspaces_dir",
        get_workspaces_dir(default=WORKSPACES_DIR_DEFAULT))

    config.app_dir = app_dir
    config.app_name = "Phoila"
    config.app_namespace = "phoila"
    config.app_settings_dir = os.path.join(app_dir, "settings")
    config.cache_files = True
    config.schemas_dir = os.path.join(app_dir, "schemas")
    config.templates_dir = os.path.join(app_dir, "static")
    config.themes_dir = os.path.join(app_dir, "themes")
    config.user_settings_dir = user_settings_dir
    config.workspaces_dir = workspaces_dir

    if getattr(nbapp, "override_static_url", ""):
        static_url = nbapp.override_static_url
    if getattr(nbapp, "override_theme_url", ""):
        config.themes_url = nbapp.override_theme_url
        config.themes_dir = ""

    if static_url:
        config.static_url = static_url
    else:
        config.static_dir = os.path.join(app_dir, "static")

    return config
コード例 #31
0
import logging
import sys

from jupyterlab.commands import get_app_info
from notebook.nbextensions import validate_nbextension
from notebook.serverextensions import validate_serverextension

# If there's a problem and we don't provide this, the validate function crashes :-(
logger = logging.getLogger('')

if validate_nbextension('pywwt/extension', logger=logger) != []:
    print("Issue detected with nbextension")
    sys.exit(1)

info = get_app_info()

if 'pywwt' not in info['extensions'] or 'pywwt' in info['disabled']:
    print("Issue detected with labextension")
    sys.exit(1)

if validate_serverextension('pywwt', logger=logger) != []:
    print("Issue detected with serverextension")
    sys.exit(1)
コード例 #32
0
ファイル: test_jupyterlab.py プロジェクト: edithkk/jupyterlab
 def test_unlink_package(self):
     target = self.mock_package
     link_package(target)
     unlink_package(target)
     linked = get_app_info(self.app_dir)['linked_packages']
     assert self.pkg_names['package'] not in linked
コード例 #33
0
ファイル: test_jupyterlab.py プロジェクト: edithkk/jupyterlab
 def test_install_extension(self):
     install_extension(self.mock_extension)
     path = pjoin(self.app_dir, 'extensions', '*.tgz')
     assert glob.glob(path)
     extensions = get_app_info(self.app_dir)['extensions']
     assert self.pkg_names['extension'] in extensions