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.
ORPA-pyOpenRPA/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyterlab_server/tests/test_settings_api.py

90 lines
2.7 KiB

"""Test the kernels service API."""
import json
import os
import shutil
from jupyterlab_server.tests.utils import LabTestBase, APITester
from ..servertest import assert_http_error
class SettingsAPI(APITester):
"""Wrapper for settings REST API requests"""
url = 'lab/api/settings'
def get(self, schema_name=''):
return self._req('GET', schema_name)
def put(self, schema_name, body):
return self._req('PUT', schema_name, json.dumps(body))
class SettingsAPITest(LabTestBase):
"""Test the settings web service API"""
def setUp(self):
# Copy the schema files.
src = os.path.join(
os.path.abspath(os.path.dirname(__file__)),
'schemas',
'@jupyterlab')
dst = os.path.join(self.lab_config.schemas_dir, '@jupyterlab')
if os.path.exists(dst):
shutil.rmtree(dst)
shutil.copytree(src, dst)
# Copy the overrides file.
src = os.path.join(
os.path.abspath(os.path.dirname(__file__)),
'app-settings',
'overrides.json')
dst = os.path.join(self.lab_config.app_settings_dir, 'overrides.json')
if os.path.exists(dst):
os.remove(dst)
shutil.copyfile(src, dst)
self.settings_api = SettingsAPI(self.request)
def test_get(self):
id = '@jupyterlab/apputils-extension:themes'
data = self.settings_api.get(id).json()
schema = data['schema']
assert data['id'] == id
# Check that overrides.json file is respected.
assert schema['properties']['theme']['default'] == 'JupyterLab Dark'
assert 'raw' in data
def test_get_bad(self):
with assert_http_error(404):
self.settings_api.get('foo')
def test_listing(self):
ids = [
'@jupyterlab/apputils-extension:themes',
'@jupyterlab/codemirror-extension:commands',
'@jupyterlab/shortcuts-extension:plugin'
]
versions = ['N/A', 'N/A', 'test-version']
response = self.settings_api.get('').json()
response_ids = [item['id'] for item in response['settings']]
response_versions = [item['version'] for item in response['settings']]
assert set(response_ids) == set(ids)
assert set(response_versions) == set(versions)
def test_patch(self):
id = '@jupyterlab/shortcuts-extension:plugin'
assert self.settings_api.put(id, dict()).status_code == 204
def test_patch_wrong_id(self):
with assert_http_error(404):
self.settings_api.put('foo', dict())
def test_patch_bad_data(self):
id = '@jupyterlab/codemirror-extension:commands'
with assert_http_error(400):
self.settings_api.put(id, dict(keyMap=10))