##// END OF EJS Templates
More tests for line-based input transformers
Thomas Kluyver -
Show More
@@ -7,7 +7,7 b' import nose.tools as nt'
7 7
8 8 from IPython.core import inputtransformer2 as ipt2
9 9
10 SIMPLE = ("""\
10 CELL_MAGIC = ("""\
11 11 %%foo arg
12 12 body 1
13 13 body 2
@@ -16,6 +16,73 b" get_ipython().run_cell_magic('foo', 'arg', 'body 1\\\\nbody 2\\\\n')"
16 16 """)
17 17
18 18 def test_cell_magic():
19 for sample, expected in [SIMPLE]:
19 for sample, expected in [CELL_MAGIC]:
20 20 nt.assert_equal(ipt2.cell_magic(sample.splitlines(keepends=True)),
21 21 expected.splitlines(keepends=True))
22
23 CLASSIC_PROMPT = ("""\
24 >>> for a in range(5):
25 ... print(a)
26 """, """\
27 for a in range(5):
28 print(a)
29 """)
30
31 CLASSIC_PROMPT_L2 = ("""\
32 for a in range(5):
33 ... print(a)
34 ... print(a ** 2)
35 """, """\
36 for a in range(5):
37 print(a)
38 print(a ** 2)
39 """)
40
41 def test_classic_prompt():
42 for sample, expected in [CLASSIC_PROMPT, CLASSIC_PROMPT_L2]:
43 nt.assert_equal(ipt2.classic_prompt(sample.splitlines(keepends=True)),
44 expected.splitlines(keepends=True))
45
46 IPYTHON_PROMPT = ("""\
47 In [1]: for a in range(5):
48 ...: print(a)
49 """, """\
50 for a in range(5):
51 print(a)
52 """)
53
54 IPYTHON_PROMPT_L2 = ("""\
55 for a in range(5):
56 ...: print(a)
57 ...: print(a ** 2)
58 """, """\
59 for a in range(5):
60 print(a)
61 print(a ** 2)
62 """)
63
64 def test_ipython_prompt():
65 for sample, expected in [IPYTHON_PROMPT, IPYTHON_PROMPT_L2]:
66 nt.assert_equal(ipt2.ipython_prompt(sample.splitlines(keepends=True)),
67 expected.splitlines(keepends=True))
68
69 INDENT_SPACES = ("""\
70 if True:
71 a = 3
72 """, """\
73 if True:
74 a = 3
75 """)
76
77 INDENT_TABS = ("""\
78 \tif True:
79 \t\tb = 4
80 """, """\
81 if True:
82 \tb = 4
83 """)
84
85 def test_leading_indent():
86 for sample, expected in [INDENT_SPACES, INDENT_TABS]:
87 nt.assert_equal(ipt2.leading_indent(sample.splitlines(keepends=True)),
88 expected.splitlines(keepends=True))
General Comments 0
You need to be logged in to leave comments. Login now