|
|
import json
|
|
|
import os
|
|
|
from os.path import join as pjoin
|
|
|
import unittest
|
|
|
|
|
|
from IPython.utils.tempdir import TemporaryDirectory
|
|
|
from IPython.kernel import kernelspec
|
|
|
|
|
|
sample_kernel_json = {'argv':['cat', '{connection_file}'],
|
|
|
'display_name':'Test kernel',
|
|
|
'language':'bash',
|
|
|
}
|
|
|
|
|
|
class KernelSpecTests(unittest.TestCase):
|
|
|
def setUp(self):
|
|
|
self.tempdir = td = TemporaryDirectory()
|
|
|
self.sample_kernel_dir = pjoin(td.name, 'kernels', 'Sample')
|
|
|
os.makedirs(self.sample_kernel_dir)
|
|
|
json_file = pjoin(self.sample_kernel_dir, 'kernel.json')
|
|
|
with open(json_file, 'w') as f:
|
|
|
json.dump(sample_kernel_json, f)
|
|
|
|
|
|
self.ksm = kernelspec.KernelSpecManager(ipython_dir=td.name)
|
|
|
|
|
|
def tearDown(self):
|
|
|
self.tempdir.cleanup()
|
|
|
|
|
|
def test_find_kernel_specs(self):
|
|
|
kernels = self.ksm.find_kernel_specs()
|
|
|
self.assertEqual(kernels['sample'], self.sample_kernel_dir)
|
|
|
|
|
|
def test_get_kernel_spec(self):
|
|
|
ks = self.ksm.get_kernel_spec('SAMPLE') # Case insensitive
|
|
|
self.assertEqual(ks.resource_dir, self.sample_kernel_dir)
|
|
|
self.assertEqual(ks.argv, sample_kernel_json['argv'])
|
|
|
self.assertEqual(ks.display_name, sample_kernel_json['display_name'])
|
|
|
self.assertEqual(ks.language, sample_kernel_json['language'])
|
|
|
self.assertEqual(ks.codemirror_mode, sample_kernel_json['language'])
|
|
|
self.assertEqual(ks.env, {})
|