##// END OF EJS Templates
Revert change to test skip condition...
Thomas Kluyver -
Show More
@@ -1,66 +1,64 b''
1 import json
1 import json
2 import os
2 import os
3 from os.path import join as pjoin
3 from os.path import join as pjoin
4 import unittest
4 import unittest
5
5
6 from IPython.testing.decorators import onlyif
6 from IPython.testing.decorators import onlyif
7 from IPython.utils.tempdir import TemporaryDirectory
7 from IPython.utils.tempdir import TemporaryDirectory
8 from IPython.kernel import kernelspec
8 from IPython.kernel import kernelspec
9
9
10 sample_kernel_json = {'argv':['cat', '{connection_file}'],
10 sample_kernel_json = {'argv':['cat', '{connection_file}'],
11 'display_name':'Test kernel',
11 'display_name':'Test kernel',
12 }
12 }
13
13
14 class KernelSpecTests(unittest.TestCase):
14 class KernelSpecTests(unittest.TestCase):
15 def setUp(self):
15 def setUp(self):
16 td = TemporaryDirectory()
16 td = TemporaryDirectory()
17 self.addCleanup(td.cleanup)
17 self.addCleanup(td.cleanup)
18 self.sample_kernel_dir = pjoin(td.name, 'kernels', 'Sample')
18 self.sample_kernel_dir = pjoin(td.name, 'kernels', 'Sample')
19 os.makedirs(self.sample_kernel_dir)
19 os.makedirs(self.sample_kernel_dir)
20 json_file = pjoin(self.sample_kernel_dir, 'kernel.json')
20 json_file = pjoin(self.sample_kernel_dir, 'kernel.json')
21 with open(json_file, 'w') as f:
21 with open(json_file, 'w') as f:
22 json.dump(sample_kernel_json, f)
22 json.dump(sample_kernel_json, f)
23
23
24 self.ksm = kernelspec.KernelSpecManager(ipython_dir=td.name)
24 self.ksm = kernelspec.KernelSpecManager(ipython_dir=td.name)
25
25
26 td2 = TemporaryDirectory()
26 td2 = TemporaryDirectory()
27 self.addCleanup(td2.cleanup)
27 self.addCleanup(td2.cleanup)
28 self.installable_kernel = td2.name
28 self.installable_kernel = td2.name
29 with open(pjoin(self.installable_kernel, 'kernel.json'), 'w') as f:
29 with open(pjoin(self.installable_kernel, 'kernel.json'), 'w') as f:
30 json.dump(sample_kernel_json, f)
30 json.dump(sample_kernel_json, f)
31
31
32 def test_find_kernel_specs(self):
32 def test_find_kernel_specs(self):
33 kernels = self.ksm.find_kernel_specs()
33 kernels = self.ksm.find_kernel_specs()
34 self.assertEqual(kernels['sample'], self.sample_kernel_dir)
34 self.assertEqual(kernels['sample'], self.sample_kernel_dir)
35
35
36 def test_get_kernel_spec(self):
36 def test_get_kernel_spec(self):
37 ks = self.ksm.get_kernel_spec('SAMPLE') # Case insensitive
37 ks = self.ksm.get_kernel_spec('SAMPLE') # Case insensitive
38 self.assertEqual(ks.resource_dir, self.sample_kernel_dir)
38 self.assertEqual(ks.resource_dir, self.sample_kernel_dir)
39 self.assertEqual(ks.argv, sample_kernel_json['argv'])
39 self.assertEqual(ks.argv, sample_kernel_json['argv'])
40 self.assertEqual(ks.display_name, sample_kernel_json['display_name'])
40 self.assertEqual(ks.display_name, sample_kernel_json['display_name'])
41 self.assertEqual(ks.env, {})
41 self.assertEqual(ks.env, {})
42
42
43 def test_install_kernel_spec(self):
43 def test_install_kernel_spec(self):
44 self.ksm.install_kernel_spec(self.installable_kernel,
44 self.ksm.install_kernel_spec(self.installable_kernel,
45 kernel_name='tstinstalled',
45 kernel_name='tstinstalled',
46 user=True)
46 user=True)
47 self.assertIn('tstinstalled', self.ksm.find_kernel_specs())
47 self.assertIn('tstinstalled', self.ksm.find_kernel_specs())
48
48
49 with self.assertRaises(OSError):
49 with self.assertRaises(OSError):
50 self.ksm.install_kernel_spec(self.installable_kernel,
50 self.ksm.install_kernel_spec(self.installable_kernel,
51 kernel_name='tstinstalled',
51 kernel_name='tstinstalled',
52 user=True)
52 user=True)
53
53
54 # Smoketest that this succeeds
54 # Smoketest that this succeeds
55 self.ksm.install_kernel_spec(self.installable_kernel,
55 self.ksm.install_kernel_spec(self.installable_kernel,
56 kernel_name='tstinstalled',
56 kernel_name='tstinstalled',
57 replace=True, user=True)
57 replace=True, user=True)
58
58
59 @onlyif(kernelspec.find_install_prefix() in {'/usr', '/usr/local'}
59 @onlyif(os.name != 'nt' and not os.access('/usr/local/share', os.W_OK), "needs Unix system without root privileges")
60 and not os.access('/usr/local/share', os.W_OK),
61 "needs Unix system without root privileges")
62 def test_cant_install_kernel_spec(self):
60 def test_cant_install_kernel_spec(self):
63 with self.assertRaises(OSError):
61 with self.assertRaises(OSError):
64 self.ksm.install_kernel_spec(self.installable_kernel,
62 self.ksm.install_kernel_spec(self.installable_kernel,
65 kernel_name='tstinstalled',
63 kernel_name='tstinstalled',
66 user=False)
64 user=False)
General Comments 0
You need to be logged in to leave comments. Login now