##// END OF EJS Templates
Add some extra tests for prefiltering.
Add some extra tests for prefiltering.

File last commit:

r2551:7f127ae7
r2551:7f127ae7
Show More
test_prefilter.py
51 lines | 1.5 KiB | text/x-python | PythonLexer
"""Tests for input manipulation machinery."""
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
import nose.tools as nt
from IPython.testing import tools as tt, decorators as dec
#-----------------------------------------------------------------------------
# Tests
#-----------------------------------------------------------------------------
ip = get_ipython()
@dec.parametric
def test_prefilter():
"""Test user input conversions"""
# pairs of (raw, expected correct) input
pairs = [ ('2+2','2+2'),
('>>> 2+2','2+2'),
('>>> # This is a comment\n'
'... 2+2',
'# This is a comment\n'
'2+2'),
# Some IPython input
('In [1]: 1', '1'),
('In [2]: for i in range(5):\n'
' ...: print i,',
'for i in range(5):\n'
' print i,'),
]
for raw, correct in pairs:
yield nt.assert_equals(ip.prefilter(raw), correct)
@dec.parametric
def test_autocall_binops():
"""See https://bugs.launchpad.net/ipython/+bug/315706"""
ip.magic('autocall 2')
f = lambda x: x
ip.user_ns['f'] = f
try:
yield nt.assert_equals(ip.prefilter('f 1'),'f(1)')
for t in ['f +1', 'f -1']:
yield nt.assert_equals(ip.prefilter(t), t)
finally:
ip.magic('autocall 0')
del ip.user_ns['f']