Ver código fonte

Add support for getting lab config and add test

Steven Silvester 8 anos atrás
pai
commit
0fed6b65fe
2 arquivos alterados com 30 adições e 1 exclusões
  1. 15 0
      jupyterlab/labextensions.py
  2. 15 1
      jupyterlab/tests/test_labextensions.py

+ 15 - 0
jupyterlab/labextensions.py

@@ -534,6 +534,21 @@ def validate_labextension_folder(name, full_dest, logger=None):
     return warnings
 
 
+def get_labextension_config_python(module):
+    """Get the labextension configuration data associated  with a Python module. 
+
+    Parameters
+    -----------
+    module : str
+    Importable Python module exposing the
+    magic-named `_jupyter_labextension_config` function
+    """
+    m = import_item(module)
+    if not hasattr(m, '_jupyter_labextension_config'):
+        return {}
+    return m._jupyter_labextension_config()
+
+
 #----------------------------------------------------------------------
 # Applications
 #----------------------------------------------------------------------

+ 15 - 1
jupyterlab/tests/test_labextensions.py

@@ -26,7 +26,8 @@ from jupyterlab.labextensions import (install_labextension, check_labextension,
     enable_labextension, disable_labextension,
     install_labextension_python, uninstall_labextension_python,
     enable_labextension_python, disable_labextension_python, _get_config_dir,
-    find_labextension, validate_labextension_folder
+    find_labextension, validate_labextension_folder,
+    get_labextension_config_python
 )
 
 from traitlets.config.manager import BaseJSONConfigManager
@@ -258,6 +259,10 @@ class TestInstallLabExtension(TestCase):
             @staticmethod
             def _jupyter_labextension_paths():
                 return [meta]
+
+            @staticmethod
+            def _jupyter_labextension_config():
+                return dict(mockextension_foo=1)
         
         import sys
         sys.modules['mockextension'] = mock
@@ -314,3 +319,12 @@ class TestInstallLabExtension(TestCase):
         meta = self._mock_extension_spec_meta()
         warnings = validate_labextension_folder(meta['name'], paths[0])
         self.assertEqual([], warnings, warnings)
+
+    def test_labextensionpy_config(self):
+        self._inject_mock_extension()
+
+        install_labextension_python('mockextension', user=True)
+        enable_labextension_python('mockextension')
+
+        config = get_labextension_config_python('mockextension')
+        assert config['mockextension_foo'] == 1