##// END OF EJS Templates
autoreformat
autoreformat

File last commit:

r26750:7b2546d2
r27374:916d39c0
Show More
test_inputtransformer2_line.py
168 lines | 2.9 KiB | text/x-python | PythonLexer
/ IPython / core / tests / test_inputtransformer2_line.py
Thomas Kluyver
Fix cell magic transformation
r24162 """Tests for the line-based transformers in IPython.core.inputtransformer2
Line-based transformers are the simpler ones; token-based transformers are
Thomas Kluyver
Add & improve docstrings following @willingc's review
r24407 more complex. See test_inputtransformer2 for tests for token-based transformers.
Thomas Kluyver
Fix cell magic transformation
r24162 """
Tomasz Kłoczko
nose2pytest migration batch 1...
r26749 import pytest
Thomas Kluyver
Fix cell magic transformation
r24162
from IPython.core import inputtransformer2 as ipt2
Thomas Kluyver
More tests for line-based input transformers
r24163 CELL_MAGIC = ("""\
Thomas Kluyver
Fix cell magic transformation
r24162 %%foo arg
body 1
body 2
""", """\
get_ipython().run_cell_magic('foo', 'arg', 'body 1\\nbody 2\\n')
""")
def test_cell_magic():
Thomas Kluyver
More tests for line-based input transformers
r24163 for sample, expected in [CELL_MAGIC]:
Blazej Michalik
Darker
r26750 assert ipt2.cell_magic(sample.splitlines(keepends=True)) == expected.splitlines(
keepends=True
)
Thomas Kluyver
More tests for line-based input transformers
r24163
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]:
Blazej Michalik
Darker
r26750 assert ipt2.classic_prompt(
sample.splitlines(keepends=True)
) == expected.splitlines(keepends=True)
Thomas Kluyver
More tests for line-based input transformers
r24163
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)
""")
Blazej Michalik
Test for vi-prompt strip
r26493
Blazej Michalik
Reformat test code
r26494 IPYTHON_PROMPT_VI_INS = (
"""\
Blazej Michalik
Test for vi-prompt strip
r26493 [ins] In [11]: def a():
...: 123
...:
...: 123
Blazej Michalik
Reformat test code
r26494 """,
"""\
Blazej Michalik
Test for vi-prompt strip
r26493 def a():
123
123
Blazej Michalik
Reformat test code
r26494 """,
)
Blazej Michalik
Test for vi-prompt strip
r26493
Blazej Michalik
Reformat test code
r26494 IPYTHON_PROMPT_VI_NAV = (
"""\
Blazej Michalik
Test for vi-prompt strip
r26493 [nav] In [11]: def a():
...: 123
...:
...: 123
Blazej Michalik
Reformat test code
r26494 """,
"""\
Blazej Michalik
Test for vi-prompt strip
r26493 def a():
123
123
Blazej Michalik
Reformat test code
r26494 """,
)
Blazej Michalik
Test for vi-prompt strip
r26493
Thomas Kluyver
More tests for line-based input transformers
r24163 def test_ipython_prompt():
Blazej Michalik
Reformat test code
r26494 for sample, expected in [
IPYTHON_PROMPT,
IPYTHON_PROMPT_L2,
IPYTHON_PROMPT_VI_INS,
IPYTHON_PROMPT_VI_NAV,
]:
Blazej Michalik
Darker
r26750 assert ipt2.ipython_prompt(
sample.splitlines(keepends=True)
) == expected.splitlines(keepends=True)
Thomas Kluyver
More tests for line-based input transformers
r24163
Blazej Michalik
Test for vi-prompt strip
r26493
Thomas Kluyver
More tests for line-based input transformers
r24163 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]:
Blazej Michalik
Darker
r26750 assert ipt2.leading_indent(
sample.splitlines(keepends=True)
) == expected.splitlines(keepends=True)
Robin Gustafsson
Remove leading empty lines...
r25026
LEADING_EMPTY_LINES = ("""\
\t
if True:
a = 3
b = 4
""", """\
if True:
a = 3
b = 4
""")
ONLY_EMPTY_LINES = ("""\
\t
""", """\
\t
""")
Matthias Bussonnier
prefix test_function with test_
r25042 def test_leading_empty_lines():
Robin Gustafsson
Remove leading empty lines...
r25026 for sample, expected in [LEADING_EMPTY_LINES, ONLY_EMPTY_LINES]:
Blazej Michalik
Darker
r26750 assert ipt2.leading_empty_lines(
sample.splitlines(keepends=True)
) == expected.splitlines(keepends=True)
Kyle Cutler
Support CRLF line endings in magic transforms
r25936
CRLF_MAGIC = ([
"%%ls\r\n"
], [
"get_ipython().run_cell_magic('ls', '', '')\n"
])
def test_crlf_magic():
for sample, expected in [CRLF_MAGIC]:
Tomasz Kłoczko
nose2pytest migration batch 1...
r26749 assert ipt2.cell_magic(sample) == expected