##// END OF EJS Templates
Provide hooks for arbitrary mimetypes handling....
Provide hooks for arbitrary mimetypes handling. This should allow at some point inline images, an math in the terminal.

File last commit:

r25042:8a8867b9
r25164:cbfdf70d
Show More
test_inputtransformer2_line.py
116 lines | 2.4 KiB | text/x-python | PythonLexer
/ IPython / core / tests / test_inputtransformer2_line.py
"""Tests for the line-based transformers in IPython.core.inputtransformer2
Line-based transformers are the simpler ones; token-based transformers are
more complex. See test_inputtransformer2 for tests for token-based transformers.
"""
import nose.tools as nt
from IPython.core import inputtransformer2 as ipt2
CELL_MAGIC = ("""\
%%foo arg
body 1
body 2
""", """\
get_ipython().run_cell_magic('foo', 'arg', 'body 1\\nbody 2\\n')
""")
def test_cell_magic():
for sample, expected in [CELL_MAGIC]:
nt.assert_equal(ipt2.cell_magic(sample.splitlines(keepends=True)),
expected.splitlines(keepends=True))
CLASSIC_PROMPT = ("""\
>>> for a in range(5):
... print(a)
""", """\
for a in range(5):
print(a)
""")
CLASSIC_PROMPT_L2 = ("""\
for a in range(5):
... print(a)
... print(a ** 2)
""", """\
for a in range(5):
print(a)
print(a ** 2)
""")
def test_classic_prompt():
for sample, expected in [CLASSIC_PROMPT, CLASSIC_PROMPT_L2]:
nt.assert_equal(ipt2.classic_prompt(sample.splitlines(keepends=True)),
expected.splitlines(keepends=True))
IPYTHON_PROMPT = ("""\
In [1]: for a in range(5):
...: print(a)
""", """\
for a in range(5):
print(a)
""")
IPYTHON_PROMPT_L2 = ("""\
for a in range(5):
...: print(a)
...: print(a ** 2)
""", """\
for a in range(5):
print(a)
print(a ** 2)
""")
def test_ipython_prompt():
for sample, expected in [IPYTHON_PROMPT, IPYTHON_PROMPT_L2]:
nt.assert_equal(ipt2.ipython_prompt(sample.splitlines(keepends=True)),
expected.splitlines(keepends=True))
INDENT_SPACES = ("""\
if True:
a = 3
""", """\
if True:
a = 3
""")
INDENT_TABS = ("""\
\tif True:
\t\tb = 4
""", """\
if True:
\tb = 4
""")
def test_leading_indent():
for sample, expected in [INDENT_SPACES, INDENT_TABS]:
nt.assert_equal(ipt2.leading_indent(sample.splitlines(keepends=True)),
expected.splitlines(keepends=True))
LEADING_EMPTY_LINES = ("""\
\t
if True:
a = 3
b = 4
""", """\
if True:
a = 3
b = 4
""")
ONLY_EMPTY_LINES = ("""\
\t
""", """\
\t
""")
def test_leading_empty_lines():
for sample, expected in [LEADING_EMPTY_LINES, ONLY_EMPTY_LINES]:
nt.assert_equal(
ipt2.leading_empty_lines(sample.splitlines(keepends=True)),
expected.splitlines(keepends=True))