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