test_deepreload.py
34 lines
| 1.1 KiB
| text/x-python
|
PythonLexer
Bradley M. Froehle
|
r6534 | # -*- coding: utf-8 -*- | ||
Bradley M. Froehle
|
r6533 | """Test suite for the deepreload module.""" | ||
Thomas Kluyver
|
r22971 | # Copyright (c) IPython Development Team. | ||
# Distributed under the terms of the Modified BSD License. | ||||
Bradley M. Froehle
|
r6534 | |||
Bradley M. Froehle
|
r6535 | import os | ||
import nose.tools as nt | ||||
Bradley M. Froehle
|
r6541 | from IPython.utils.syspathcontext import prepended_to_syspath | ||
Bradley M. Froehle
|
r6535 | from IPython.utils.tempdir import TemporaryDirectory | ||
Bradley M. Froehle
|
r6533 | from IPython.lib.deepreload import reload as dreload | ||
Bradley M. Froehle
|
r6535 | def test_deepreload(): | ||
"Test that dreload does deep reloads and skips excluded modules." | ||||
with TemporaryDirectory() as tmpdir: | ||||
Bradley M. Froehle
|
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)) | ||||