test_inputtransformer2_line.py
116 lines
| 2.4 KiB
| text/x-python
|
PythonLexer
Thomas Kluyver
|
r24162 | """Tests for the line-based transformers in IPython.core.inputtransformer2 | ||
Line-based transformers are the simpler ones; token-based transformers are | ||||
Thomas Kluyver
|
r24407 | more complex. See test_inputtransformer2 for tests for token-based transformers. | ||
Thomas Kluyver
|
r24162 | """ | ||
import nose.tools as nt | ||||
from IPython.core import inputtransformer2 as ipt2 | ||||
Thomas Kluyver
|
r24163 | CELL_MAGIC = ("""\ | ||
Thomas Kluyver
|
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
|
r24163 | for sample, expected in [CELL_MAGIC]: | ||
Thomas Kluyver
|
r24162 | nt.assert_equal(ipt2.cell_magic(sample.splitlines(keepends=True)), | ||
expected.splitlines(keepends=True)) | ||||
Thomas Kluyver
|
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]: | ||||
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)) | ||||
Robin Gustafsson
|
r25026 | |||
LEADING_EMPTY_LINES = ("""\ | ||||
\t | ||||
if True: | ||||
a = 3 | ||||
b = 4 | ||||
""", """\ | ||||
if True: | ||||
a = 3 | ||||
b = 4 | ||||
""") | ||||
ONLY_EMPTY_LINES = ("""\ | ||||
\t | ||||
""", """\ | ||||
\t | ||||
""") | ||||
Matthias Bussonnier
|
r25042 | def test_leading_empty_lines(): | ||
Robin Gustafsson
|
r25026 | 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)) | ||||