##// END OF EJS Templates
Fix Mixin Inheritence in Xunit unittest....
Fix Mixin Inheritence in Xunit unittest. Some unittest were weird mixin, properly make the base class an TestCase, and use setup/teardown to set local attributes. This adds compatibility with PyTest

File last commit:

r25042:8a8867b9
r25113:3ac47845
Show More
test_inputtransformer2_line.py
116 lines | 2.4 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 """
import nose.tools as nt
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]:
Thomas Kluyver
Fix cell magic transformation
r24162 nt.assert_equal(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]:
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
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]:
nt.assert_equal(
ipt2.leading_empty_lines(sample.splitlines(keepends=True)),
expected.splitlines(keepends=True))