##// END OF EJS Templates
Remove unused python3 profile.
Thomas Kluyver -
Show More
@@ -1,151 +1,151 b''
1 1 # coding: utf-8
2 2 """Tests for profile-related functions.
3 3
4 4 Currently only the startup-dir functionality is tested, but more tests should
5 5 be added for:
6 6
7 7 * ipython profile create
8 8 * ipython profile list
9 9 * ipython profile create --parallel
10 10 * security dir permissions
11 11
12 12 Authors
13 13 -------
14 14
15 15 * MinRK
16 16
17 17 """
18 18 from __future__ import absolute_import
19 19
20 20 #-----------------------------------------------------------------------------
21 21 # Imports
22 22 #-----------------------------------------------------------------------------
23 23
24 24 import os
25 25 import shutil
26 26 import sys
27 27 import tempfile
28 28
29 29 from unittest import TestCase
30 30
31 31 import nose.tools as nt
32 32 from nose import SkipTest
33 33
34 34 from IPython.core.profileapp import list_profiles_in, list_bundled_profiles
35 35 from IPython.core.profiledir import ProfileDir
36 36
37 37 from IPython.testing import decorators as dec
38 38 from IPython.testing import tools as tt
39 39 from IPython.utils import py3compat
40 40
41 41
42 42 #-----------------------------------------------------------------------------
43 43 # Globals
44 44 #-----------------------------------------------------------------------------
45 45 TMP_TEST_DIR = tempfile.mkdtemp()
46 46 HOME_TEST_DIR = os.path.join(TMP_TEST_DIR, "home_test_dir")
47 47 IP_TEST_DIR = os.path.join(HOME_TEST_DIR,'.ipython')
48 48
49 49 #
50 50 # Setup/teardown functions/decorators
51 51 #
52 52
53 53 def setup():
54 54 """Setup test environment for the module:
55 55
56 56 - Adds dummy home dir tree
57 57 """
58 58 # Do not mask exceptions here. In particular, catching WindowsError is a
59 59 # problem because that exception is only defined on Windows...
60 60 os.makedirs(IP_TEST_DIR)
61 61
62 62
63 63 def teardown():
64 64 """Teardown test environment for the module:
65 65
66 66 - Remove dummy home dir tree
67 67 """
68 68 # Note: we remove the parent test dir, which is the root of all test
69 69 # subdirs we may have created. Use shutil instead of os.removedirs, so
70 70 # that non-empty directories are all recursively removed.
71 71 shutil.rmtree(TMP_TEST_DIR)
72 72
73 73
74 74 #-----------------------------------------------------------------------------
75 75 # Test functions
76 76 #-----------------------------------------------------------------------------
77 77 def win32_without_pywin32():
78 78 if sys.platform == 'win32':
79 79 try:
80 80 import pywin32
81 81 except ImportError:
82 82 return True
83 83 return False
84 84
85 85
86 86 class ProfileStartupTest(TestCase):
87 87 def setUp(self):
88 88 # create profile dir
89 89 self.pd = ProfileDir.create_profile_dir_by_name(IP_TEST_DIR, 'test')
90 90 self.options = ['--ipython-dir', IP_TEST_DIR, '--profile', 'test']
91 91 self.fname = os.path.join(TMP_TEST_DIR, 'test.py')
92 92
93 93 def tearDown(self):
94 94 # We must remove this profile right away so its presence doesn't
95 95 # confuse other tests.
96 96 shutil.rmtree(self.pd.location)
97 97
98 98 def init(self, startup_file, startup, test):
99 99 # write startup python file
100 100 with open(os.path.join(self.pd.startup_dir, startup_file), 'w') as f:
101 101 f.write(startup)
102 102 # write simple test file, to check that the startup file was run
103 103 with open(self.fname, 'w') as f:
104 104 f.write(py3compat.doctest_refactor_print(test))
105 105
106 106 def validate(self, output):
107 107 tt.ipexec_validate(self.fname, output, '', options=self.options)
108 108
109 109 @dec.skipif(win32_without_pywin32(), "Test requires pywin32 on Windows")
110 110 def test_startup_py(self):
111 111 self.init('00-start.py', 'zzz=123\n',
112 112 py3compat.doctest_refactor_print('print zzz\n'))
113 113 self.validate('123')
114 114
115 115 @dec.skipif(win32_without_pywin32(), "Test requires pywin32 on Windows")
116 116 def test_startup_ipy(self):
117 117 self.init('00-start.ipy', '%profile\n', '')
118 118 self.validate('test')
119 119
120 120
121 121 def test_list_profiles_in():
122 122 # No need to remove these directories and files, as they will get nuked in
123 123 # the module-level teardown.
124 124 td = tempfile.mkdtemp(dir=TMP_TEST_DIR)
125 125 td = py3compat.str_to_unicode(td)
126 126 for name in ('profile_foo', u'profile_ünicode', 'profile_hello',
127 127 'not_a_profile'):
128 128 os.mkdir(os.path.join(td, name))
129 129 with open(os.path.join(td, 'profile_file'), 'w') as f:
130 130 f.write("I am not a profile directory")
131 131 profiles = list_profiles_in(td)
132 132
133 133 # unicode normalization can turn u'ünicode' into u'u\0308nicode',
134 134 # so only check for *nicode, and that creating a ProfileDir from the
135 135 # name remains valid
136 136 found_unicode = False
137 137 for p in list(profiles):
138 138 if p.endswith('nicode'):
139 139 pd = ProfileDir.find_profile_dir_by_name(td, p)
140 140 profiles.remove(p)
141 141 found_unicode = True
142 142 break
143 143 nt.assert_true(found_unicode)
144 144 nt.assert_equals(set(profiles), set(['foo', 'hello']))
145 145
146 146
147 147 def test_list_bundled_profiles():
148 148 # This variable will need to be updated when a new profile gets bundled
149 bundled_true = [u'cluster', u'math', u'pysh', u'python3', u'sympy']
149 bundled_true = [u'cluster', u'math', u'pysh', u'sympy']
150 150 bundled = sorted(list_bundled_profiles())
151 151 nt.assert_equals(bundled, bundled_true)
1 NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now