diff --git a/IPython/html/services/kernelspecs/handlers.py b/IPython/html/services/kernelspecs/handlers.py index 3aeb5545f..975cd5d9f 100644 --- a/IPython/html/services/kernelspecs/handlers.py +++ b/IPython/html/services/kernelspecs/handlers.py @@ -19,8 +19,9 @@ class MainKernelSpecHandler(IPythonHandler): ksm = self.kernel_spec_manager results = [] for kernel_name in ksm.find_kernel_specs(): - results.append(dict(name=kernel_name, - display_name=ksm.get_kernel_spec(kernel_name).display_name)) + d = ksm.get_kernel_spec(kernel_name).to_dict() + d['name'] = kernel_name + results.append(d) self.set_header("Content-Type", 'application/json') self.finish(jsonapi.dumps(results)) diff --git a/IPython/html/services/kernelspecs/tests/test_kernelspecs_api.py b/IPython/html/services/kernelspecs/tests/test_kernelspecs_api.py index 90224151f..ad2a5fbdb 100644 --- a/IPython/html/services/kernelspecs/tests/test_kernelspecs_api.py +++ b/IPython/html/services/kernelspecs/tests/test_kernelspecs_api.py @@ -68,11 +68,14 @@ class APITest(NotebookTestBase): def test_list_kernelspecs(self): specs = self.ks_api.list().json() assert isinstance(specs, list) - + # 2: the sample kernelspec created in setUp, and the native Python kernel self.assertEqual(len(specs), 2) - assert any(s == {'name': 'sample', 'display_name': 'Test kernel'} - for s in specs), specs + + def is_sample_kernelspec(s): + return s['name'] == 'sample' and s['display_name'] == 'Test kernel' + + assert any(is_sample_kernelspec(s) for s in specs), specs def test_get_kernelspec(self): spec = self.ks_api.kernel_spec_info('Sample').json() # Case insensitive