##// END OF EJS Templates
Allow recursive execution of IPython code in MTInteractiveShell.runsource by checking if we are already in worker thread, and execute code directly if we are.
Allow recursive execution of IPython code in MTInteractiveShell.runsource by checking if we are already in worker thread, and execute code directly if we are.

File last commit:

r988:2f09c2ab
r1053:da4dd09c
Show More
test_completer.py
36 lines | 773 B | text/x-python | PythonLexer
"""
comp
"""
# The prefilter always ends in a call to some self.handle_X method. We swap
# all of those out so that we can capture which one was called.
import sys
sys.path.append('..')
import IPython
import IPython.ipapi
IPython.Shell.start()
ip = IPython.ipapi.get()
completer = ip.IP.Completer
print completer
def do_test(text, line):
def get_endix():
idx = len(line)
print "Call endidx =>",idx
return idx
def get_line_buffer():
print "Lbuf =>",line
return line
completer.get_line_buffer = get_line_buffer
completer.get_endidx = get_endix
l = completer.all_completions(text)
return l
l = do_test ('p', 'print p')
assert 'pow' in l
l = do_test ('p', 'import p')
assert 'pprint' in l