##// END OF EJS Templates
Add deepreload functionality test.
Bradley M. Froehle -
Show More
@@ -5,7 +5,13 b''
5 5 # Imports
6 6 #-----------------------------------------------------------------------------
7 7
8 import os
9 import sys
10
11 import nose.tools as nt
12
8 13 from IPython.testing import decorators as dec
14 from IPython.utils.tempdir import TemporaryDirectory
9 15 from IPython.lib.deepreload import reload as dreload
10 16
11 17 #-----------------------------------------------------------------------------
@@ -14,6 +20,7 b' from IPython.lib.deepreload import reload as dreload'
14 20
15 21 @dec.skipif_not_numpy
16 22 def test_deepreload_numpy():
23 "Test that NumPy can be deep reloaded."
17 24 import numpy
18 25 exclude = [
19 26 # Standard exclusions:
@@ -22,3 +29,24 b' def test_deepreload_numpy():'
22 29 'unittest',
23 30 ]
24 31 dreload(numpy, exclude=exclude)
32
33 def test_deepreload():
34 "Test that dreload does deep reloads and skips excluded modules."
35 with TemporaryDirectory() as tmpdir:
36 sys.path.insert(0, tmpdir)
37 with open(os.path.join(tmpdir, 'A.py'), 'w') as f:
38 f.write("class Object(object):\n pass\n")
39 with open(os.path.join(tmpdir, 'B.py'), 'w') as f:
40 f.write("import A\n")
41 import A
42 import B
43
44 # Test that A is not reloaded.
45 obj = A.Object()
46 dreload(B, exclude=['A'])
47 nt.assert_is_instance(obj, A.Object)
48
49 # Test that A is reloaded.
50 obj = A.Object()
51 dreload(B)
52 nt.assert_not_is_instance(obj, A.Object)
General Comments 0
You need to be logged in to leave comments. Login now