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