test_autocall.py
73 lines
| 1.5 KiB
| text/x-python
|
PythonLexer
Fernando Perez
|
r2653 | """These kinds of tests are less than ideal, but at least they run. | ||
This was an old test that was being run interactively in the top-level tests/ | ||||
directory, which we are removing. For now putting this here ensures at least | ||||
we do run the test, though ultimately this functionality should all be tested | ||||
with better-isolated tests that don't rely on the global instance in iptest. | ||||
""" | ||||
chillaranand
|
r23493 | from IPython.core.splitinput import LineInfo | ||
from IPython.core.prefilter import AutocallChecker | ||||
Thomas Kluyver
|
r4895 | from IPython.utils import py3compat | ||
chillaranand
|
r23493 | from IPython.testing.globalipapp import get_ipython | ||
ip = get_ipython() | ||||
Fernando Perez
|
r2653 | |||
Thomas Kluyver
|
r4895 | @py3compat.doctest_refactor_print | ||
Fernando Perez
|
r2653 | def doctest_autocall(): | ||
""" | ||||
In [1]: def f1(a,b,c): | ||||
...: return a+b+c | ||||
chillaranand
|
r23493 | ...: | ||
Fernando Perez
|
r2653 | |||
In [2]: def f2(a): | ||||
...: return a + a | ||||
chillaranand
|
r23493 | ...: | ||
Fernando Perez
|
r2653 | |||
chillaranand
|
r23493 | In [3]: def r(x): | ||
...: return True | ||||
...: | ||||
Fernando Perez
|
r2653 | |||
chillaranand
|
r23493 | In [4]: ;f2 a b c | ||
Out[4]: 'a b ca b c' | ||||
Fernando Perez
|
r2653 | |||
chillaranand
|
r23493 | In [5]: assert _ == "a b ca b c" | ||
Fernando Perez
|
r2653 | |||
chillaranand
|
r23493 | In [6]: ,f1 a b c | ||
Out[6]: 'abc' | ||||
Fernando Perez
|
r2653 | |||
chillaranand
|
r23493 | In [7]: assert _ == 'abc' | ||
In [8]: print _ | ||||
Fernando Perez
|
r2653 | abc | ||
chillaranand
|
r23493 | In [9]: /f1 1,2,3 | ||
Out[9]: 6 | ||||
In [10]: assert _ == 6 | ||||
Fernando Perez
|
r2653 | |||
chillaranand
|
r23493 | In [11]: /f2 4 | ||
Out[11]: 8 | ||||
Fernando Perez
|
r2653 | |||
chillaranand
|
r23493 | In [12]: assert _ == 8 | ||
Fernando Perez
|
r2653 | |||
chillaranand
|
r23493 | In [12]: del f1, f2 | ||
Fernando Perez
|
r2653 | |||
chillaranand
|
r23493 | In [13]: ,r a | ||
Out[13]: True | ||||
In [14]: assert _ == True | ||||
In [15]: r'a' | ||||
Out[15]: 'a' | ||||
In [16]: assert _ == 'a' | ||||
Fernando Perez
|
r2653 | """ | ||
chillaranand
|
r23493 | |||
def test_autocall_should_ignore_raw_strings(): | ||||
line_info = LineInfo("r'a'") | ||||
pm = ip.prefilter_manager | ||||
ac = AutocallChecker(shell=pm.shell, prefilter_manager=pm, config=pm.config) | ||||
assert ac.check(line_info) is None | ||||