##// END OF EJS Templates
pep8
pep8

File last commit:

r21384:83610635
r21425:d823445d
Show More
test_deepreload.py
60 lines | 2.0 KiB | text/x-python | PythonLexer
/ IPython / lib / tests / test_deepreload.py
Bradley M. Froehle
Reformat test to a standard style.
r6534 # -*- coding: utf-8 -*-
Bradley M. Froehle
Add deepreload unit test....
r6533 """Test suite for the deepreload module."""
Bradley M. Froehle
Reformat test to a standard style.
r6534 #-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
Bradley M. Froehle
Add deepreload functionality test.
r6535 import os
import nose.tools as nt
Bradley M. Froehle
Add deepreload unit test....
r6533 from IPython.testing import decorators as dec
Matthias Bussonnier
Do not deep-reload collection to fix tests....
r21384 from IPython.utils.py3compat import builtin_mod_name, PY3
Bradley M. Froehle
Clean up sys.path entry.
r6541 from IPython.utils.syspathcontext import prepended_to_syspath
Bradley M. Froehle
Add deepreload functionality test.
r6535 from IPython.utils.tempdir import TemporaryDirectory
Bradley M. Froehle
Add deepreload unit test....
r6533 from IPython.lib.deepreload import reload as dreload
Bradley M. Froehle
Reformat test to a standard style.
r6534 #-----------------------------------------------------------------------------
# Test functions begin
#-----------------------------------------------------------------------------
Bradley M. Froehle
Add deepreload unit test....
r6533 @dec.skipif_not_numpy
def test_deepreload_numpy():
Bradley M. Froehle
Add deepreload functionality test.
r6535 "Test that NumPy can be deep reloaded."
Bradley M. Froehle
Add deepreload unit test....
r6533 import numpy
exclude = [
# Standard exclusions:
Thomas Kluyver
Fix imports of builtins module
r13351 'sys', 'os.path', builtin_mod_name, '__main__',
Bradley M. Froehle
Add deepreload unit test....
r6533 # Test-related exclusions:
Bradley M. Froehle
Exclude UserDict when deep reloading NumPy....
r6612 'unittest', 'UserDict',
Bradley M. Froehle
Add deepreload unit test....
r6533 ]
Matthias Bussonnier
Do not deep-reload collection to fix tests....
r21384
# `collections` builtin shall not be reloaded to avoid failure
# of lib.pretty collections related pretty printing.
# of course this make nose crash on Py3 because of Py 2.3 compat...
if not PY3:
exclude.append('collections')
Bradley M. Froehle
Add deepreload unit test....
r6533 dreload(numpy, exclude=exclude)
Bradley M. Froehle
Add deepreload functionality test.
r6535
def test_deepreload():
"Test that dreload does deep reloads and skips excluded modules."
with TemporaryDirectory() as tmpdir:
Bradley M. Froehle
Clean up sys.path entry.
r6541 with prepended_to_syspath(tmpdir):
with open(os.path.join(tmpdir, 'A.py'), 'w') as f:
f.write("class Object(object):\n pass\n")
with open(os.path.join(tmpdir, 'B.py'), 'w') as f:
f.write("import A\n")
import A
import B
# Test that A is not reloaded.
obj = A.Object()
dreload(B, exclude=['A'])
nt.assert_true(isinstance(obj, A.Object))
# Test that A is reloaded.
obj = A.Object()
dreload(B)
nt.assert_false(isinstance(obj, A.Object))