From 86f276416ee70470d33ec7f481cf2d69b6956b36 2014-04-28 19:53:08 From: Thomas Kluyver <takowl@gmail.com> Date: 2014-04-28 19:53:08 Subject: [PATCH] Add simple tests for kernel spec machinery --- diff --git a/IPython/kernel/tests/test_kernelspec.py b/IPython/kernel/tests/test_kernelspec.py new file mode 100644 index 0000000..2479d10 --- /dev/null +++ b/IPython/kernel/tests/test_kernelspec.py @@ -0,0 +1,39 @@ +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, {}) \ No newline at end of file