##// END OF EJS Templates
MAINT: remove support and testing on Python 3.8...
MAINT: remove support and testing on Python 3.8 According to NEP 29 it is now time to remove support for Python 3.8 This commit removes support for Python 3.8 from the codebase, as well as removing the tests for Python 3.8 from the CI workflow. It also updates the `pyproject.toml` file to reflect the removal of Python 3.8 support.

File last commit:

r27764:aefe51c6
r28219:05f6a6e8
Show More
test_inputtransformer2_line.py
167 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 """
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