##// END OF EJS Templates
Wake up, Travis!
Thomas Kluyver -
Show More
@@ -1,55 +1,55 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """Test suite for the deepreload module."""
2 """Test suite for the deepreload module."""
3
3
4 #-----------------------------------------------------------------------------
4 #-----------------------------------------------------------------------------
5 # Imports
5 # Imports
6 #-----------------------------------------------------------------------------
6 #-----------------------------------------------------------------------------
7
7
8 import os
8 import os
9
9
10 import nose.tools as nt
10 import nose.tools as nt
11
11
12 from IPython.testing import decorators as dec
12 from IPython.testing import decorators as dec
13 from IPython.utils.py3compat import builtin_mod_name, PY3
13 from IPython.utils.py3compat import builtin_mod_name, PY3
14 from IPython.utils.syspathcontext import prepended_to_syspath
14 from IPython.utils.syspathcontext import prepended_to_syspath
15 from IPython.utils.tempdir import TemporaryDirectory
15 from IPython.utils.tempdir import TemporaryDirectory
16 from IPython.lib.deepreload import reload as dreload
16 from IPython.lib.deepreload import reload as dreload
17
17
18 #-----------------------------------------------------------------------------
18 #-----------------------------------------------------------------------------
19 # Test functions begin
19 # Test functions begin
20 #-----------------------------------------------------------------------------
20 #-----------------------------------------------------------------------------
21
21
22 @dec.skipif_not_numpy
22 @dec.skipif_not_numpy
23 def test_deepreload_numpy():
23 def test_deepreload_numpy():
24 "Test that NumPy can be deep reloaded."
24 "Test that NumPy can be deep reloaded."
25 import numpy
25 import numpy
26 exclude = [
26 exclude = [
27 # Standard exclusions:
27 # Standard exclusions:
28 'sys', 'os.path', builtin_mod_name, '__main__',
28 'sys', 'os.path', builtin_mod_name, '__main__',
29 # Test-related exclusions:
29 # Test-related exclusions:
30 'unittest', 'UserDict', '_collections_abc', 'tokenize',
30 'unittest', 'UserDict', '_collections_abc', 'tokenize',
31 'collections', 'collections.abc'
31 'collections', 'collections.abc',
32 ]
32 ]
33
33
34 dreload(numpy, exclude=exclude)
34 dreload(numpy, exclude=exclude)
35
35
36 def test_deepreload():
36 def test_deepreload():
37 "Test that dreload does deep reloads and skips excluded modules."
37 "Test that dreload does deep reloads and skips excluded modules."
38 with TemporaryDirectory() as tmpdir:
38 with TemporaryDirectory() as tmpdir:
39 with prepended_to_syspath(tmpdir):
39 with prepended_to_syspath(tmpdir):
40 with open(os.path.join(tmpdir, 'A.py'), 'w') as f:
40 with open(os.path.join(tmpdir, 'A.py'), 'w') as f:
41 f.write("class Object(object):\n pass\n")
41 f.write("class Object(object):\n pass\n")
42 with open(os.path.join(tmpdir, 'B.py'), 'w') as f:
42 with open(os.path.join(tmpdir, 'B.py'), 'w') as f:
43 f.write("import A\n")
43 f.write("import A\n")
44 import A
44 import A
45 import B
45 import B
46
46
47 # Test that A is not reloaded.
47 # Test that A is not reloaded.
48 obj = A.Object()
48 obj = A.Object()
49 dreload(B, exclude=['A'])
49 dreload(B, exclude=['A'])
50 nt.assert_true(isinstance(obj, A.Object))
50 nt.assert_true(isinstance(obj, A.Object))
51
51
52 # Test that A is reloaded.
52 # Test that A is reloaded.
53 obj = A.Object()
53 obj = A.Object()
54 dreload(B)
54 dreload(B)
55 nt.assert_false(isinstance(obj, A.Object))
55 nt.assert_false(isinstance(obj, A.Object))
General Comments 0
You need to be logged in to leave comments. Login now