Allow kernelspecs to have spaces in them for backward compat

pull/1895/head
Steven Silvester 10 years ago
parent a20c34433a
commit 8f5a67ad6d

@ -14,7 +14,7 @@ pjoin = os.path.join
from tornado import web
from ...base.handlers import APIHandler, json_errors
from ...utils import url_path_join
from ...utils import url_path_join, url_unescape
def kernelspec_model(handler, name):
"""Load a KernelSpec by name and return the REST API model"""
@ -70,7 +70,7 @@ class KernelSpecHandler(APIHandler):
@json_errors
def get(self, kernel_name):
try:
model = kernelspec_model(self, kernel_name)
model = kernelspec_model(self, url_unescape(kernel_name))
except KeyError:
raise web.HTTPError(404, u'Kernel spec %s not found' % kernel_name)
self.set_header("Content-Type", 'application/json')

@ -12,7 +12,7 @@ pjoin = os.path.join
import requests
from jupyter_client.kernelspec import NATIVE_KERNEL_NAME
from notebook.utils import url_path_join
from notebook.utils import url_path_join, url_escape
from notebook.tests.launchnotebook import NotebookTestBase, assert_http_error
# Copied from jupyter_client.tests.test_kernelspec so updating that doesn't
@ -41,9 +41,11 @@ class KernelSpecAPI(object):
return self._req('GET', 'api/kernelspecs')
def kernel_spec_info(self, name):
name = url_escape(name)
return self._req('GET', url_path_join('api/kernelspecs', name))
def kernel_resource(self, name, path):
name = url_escape(name)
return self._req('GET', url_path_join('kernelspecs', name, path))
class APITest(NotebookTestBase):
@ -113,6 +115,10 @@ class APITest(NotebookTestBase):
self.assertEqual(model['spec']['display_name'], 'Test kernel')
self.assertIsInstance(model['resources'], dict)
def test_get_kernelspec_spaces(self):
model = self.ks_api.kernel_spec_info('sample 2').json()
self.assertEqual(model['name'].lower(), 'sample 2')
def test_get_nonexistant_kernelspec(self):
with assert_http_error(404):
self.ks_api.kernel_spec_info('nonexistant')

Loading…
Cancel
Save