test_history.py
48 lines
| 1.8 KiB
| text/x-python
|
PythonLexer
Satrajit Ghosh
|
r3240 | """Tests for the IPython tab-completion machinery. | ||
""" | ||||
#----------------------------------------------------------------------------- | ||||
# Module imports | ||||
#----------------------------------------------------------------------------- | ||||
# stdlib | ||||
import os | ||||
import sys | ||||
import unittest | ||||
# third party | ||||
import nose.tools as nt | ||||
# our own packages | ||||
from IPython.utils.tempdir import TemporaryDirectory | ||||
from IPython.core.history import HistoryManager | ||||
def test_history(): | ||||
ip = get_ipython() | ||||
with TemporaryDirectory() as tmpdir: | ||||
#tmpdir = '/software/temp' | ||||
histfile = os.path.realpath(os.path.join(tmpdir, 'history.json')) | ||||
# Ensure that we restore the history management that we mess with in | ||||
# this test doesn't affect the IPython instance used by the test suite | ||||
# beyond this test. | ||||
hist_manager_ori = ip.history_manager | ||||
try: | ||||
ip.history_manager = HistoryManager(ip) | ||||
ip.history_manager.hist_file = histfile | ||||
print 'test',histfile | ||||
hist = ['a=1\n', 'def f():\n test = 1\n return test\n', 'b=2\n'] | ||||
# test save and load | ||||
ip.history_manager.input_hist_raw[:] = [] | ||||
for h in hist: | ||||
ip.history_manager.input_hist_raw.append(h) | ||||
ip.save_history() | ||||
ip.history_manager.input_hist_raw[:] = [] | ||||
ip.reload_history() | ||||
print type(ip.history_manager.input_hist_raw) | ||||
print ip.history_manager.input_hist_raw | ||||
nt.assert_equal(len(ip.history_manager.input_hist_raw), len(hist)) | ||||
for i,h in enumerate(hist): | ||||
nt.assert_equal(hist[i], ip.history_manager.input_hist_raw[i]) | ||||
finally: | ||||
# Restore history manager | ||||
ip.history_manager = hist_manager_ori | ||||