##// END OF EJS Templates
Handle edge case when requesting subclasses....
Handle edge case when requesting subclasses. obj.__subclasses__ does not havethe usual meaning in case obj == type. Closes #11607

File last commit:

r24407:1dfcd23a
r24946:c1885ce1
Show More
test_inputtransformer2_line.py
88 lines | 2.0 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))