Show More
@@ -0,0 +1,21 b'' | |||
|
1 | """Tests for the line-based transformers in IPython.core.inputtransformer2 | |
|
2 | ||
|
3 | Line-based transformers are the simpler ones; token-based transformers are | |
|
4 | more complex. | |
|
5 | """ | |
|
6 | import nose.tools as nt | |
|
7 | ||
|
8 | from IPython.core import inputtransformer2 as ipt2 | |
|
9 | ||
|
10 | SIMPLE = ("""\ | |
|
11 | %%foo arg | |
|
12 | body 1 | |
|
13 | body 2 | |
|
14 | """, """\ | |
|
15 | get_ipython().run_cell_magic('foo', 'arg', 'body 1\\nbody 2\\n') | |
|
16 | """) | |
|
17 | ||
|
18 | def test_cell_magic(): | |
|
19 | for sample, expected in [SIMPLE]: | |
|
20 | nt.assert_equal(ipt2.cell_magic(sample.splitlines(keepends=True)), | |
|
21 | expected.splitlines(keepends=True)) |
@@ -61,9 +61,10 b' def cell_magic(lines):' | |||
|
61 | 61 | if re.match('%%\w+\?', lines[0]): |
|
62 | 62 | # This case will be handled by help_end |
|
63 | 63 | return lines |
|
64 | magic_name, first_line = lines[0][2:].partition(' ') | |
|
65 |
body = ' |
|
|
66 |
return ['get_ipython().run_cell_magic(%r, %r, %r)' |
|
|
64 | magic_name, _, first_line = lines[0][2:-1].partition(' ') | |
|
65 | body = ''.join(lines[1:]) | |
|
66 | return ['get_ipython().run_cell_magic(%r, %r, %r)\n' | |
|
67 | % (magic_name, first_line, body)] | |
|
67 | 68 | |
|
68 | 69 | line_transforms = [ |
|
69 | 70 | leading_indent, |
@@ -430,5 +431,4 b' def transform_cell(cell):' | |||
|
430 | 431 | lines = transform(lines) |
|
431 | 432 | |
|
432 | 433 | lines = TokenTransformers()(lines) |
|
433 | for line in lines: | |
|
434 | print('~~', line) | |
|
434 | return ''.join(lines) |
@@ -700,8 +700,8 b' class CellMagicTestCase(TestCase):' | |||
|
700 | 700 | out = _ip.run_cell_magic(magic, 'a', 'b') |
|
701 | 701 | nt.assert_equal(out, ('a','b')) |
|
702 | 702 | # Via run_cell, it goes into the user's namespace via displayhook |
|
703 | _ip.run_cell('%%' + magic +' c\nd') | |
|
704 | nt.assert_equal(_ip.user_ns['_'], ('c','d')) | |
|
703 | _ip.run_cell('%%' + magic +' c\nd\n') | |
|
704 | nt.assert_equal(_ip.user_ns['_'], ('c','d\n')) | |
|
705 | 705 | |
|
706 | 706 | def test_cell_magic_func_deco(self): |
|
707 | 707 | "Cell magic using simple decorator" |
General Comments 0
You need to be logged in to leave comments.
Login now