##// END OF EJS Templates
Test for vi-prompt strip
Blazej Michalik -
Show More
@@ -1,126 +1,154 b''
1 """Tests for the line-based transformers in IPython.core.inputtransformer2
1 """Tests for the line-based transformers in IPython.core.inputtransformer2
2
2
3 Line-based transformers are the simpler ones; token-based transformers are
3 Line-based transformers are the simpler ones; token-based transformers are
4 more complex. See test_inputtransformer2 for tests for token-based transformers.
4 more complex. See test_inputtransformer2 for tests for token-based transformers.
5 """
5 """
6 import nose.tools as nt
6 import nose.tools as nt
7
7
8 from IPython.core import inputtransformer2 as ipt2
8 from IPython.core import inputtransformer2 as ipt2
9
9
10 CELL_MAGIC = ("""\
10 CELL_MAGIC = ("""\
11 %%foo arg
11 %%foo arg
12 body 1
12 body 1
13 body 2
13 body 2
14 """, """\
14 """, """\
15 get_ipython().run_cell_magic('foo', 'arg', 'body 1\\nbody 2\\n')
15 get_ipython().run_cell_magic('foo', 'arg', 'body 1\\nbody 2\\n')
16 """)
16 """)
17
17
18 def test_cell_magic():
18 def test_cell_magic():
19 for sample, expected in [CELL_MAGIC]:
19 for sample, expected in [CELL_MAGIC]:
20 nt.assert_equal(ipt2.cell_magic(sample.splitlines(keepends=True)),
20 nt.assert_equal(ipt2.cell_magic(sample.splitlines(keepends=True)),
21 expected.splitlines(keepends=True))
21 expected.splitlines(keepends=True))
22
22
23 CLASSIC_PROMPT = ("""\
23 CLASSIC_PROMPT = ("""\
24 >>> for a in range(5):
24 >>> for a in range(5):
25 ... print(a)
25 ... print(a)
26 """, """\
26 """, """\
27 for a in range(5):
27 for a in range(5):
28 print(a)
28 print(a)
29 """)
29 """)
30
30
31 CLASSIC_PROMPT_L2 = ("""\
31 CLASSIC_PROMPT_L2 = ("""\
32 for a in range(5):
32 for a in range(5):
33 ... print(a)
33 ... print(a)
34 ... print(a ** 2)
34 ... print(a ** 2)
35 """, """\
35 """, """\
36 for a in range(5):
36 for a in range(5):
37 print(a)
37 print(a)
38 print(a ** 2)
38 print(a ** 2)
39 """)
39 """)
40
40
41 def test_classic_prompt():
41 def test_classic_prompt():
42 for sample, expected in [CLASSIC_PROMPT, CLASSIC_PROMPT_L2]:
42 for sample, expected in [CLASSIC_PROMPT, CLASSIC_PROMPT_L2]:
43 nt.assert_equal(ipt2.classic_prompt(sample.splitlines(keepends=True)),
43 nt.assert_equal(ipt2.classic_prompt(sample.splitlines(keepends=True)),
44 expected.splitlines(keepends=True))
44 expected.splitlines(keepends=True))
45
45
46 IPYTHON_PROMPT = ("""\
46 IPYTHON_PROMPT = ("""\
47 In [1]: for a in range(5):
47 In [1]: for a in range(5):
48 ...: print(a)
48 ...: print(a)
49 """, """\
49 """, """\
50 for a in range(5):
50 for a in range(5):
51 print(a)
51 print(a)
52 """)
52 """)
53
53
54 IPYTHON_PROMPT_L2 = ("""\
54 IPYTHON_PROMPT_L2 = ("""\
55 for a in range(5):
55 for a in range(5):
56 ...: print(a)
56 ...: print(a)
57 ...: print(a ** 2)
57 ...: print(a ** 2)
58 """, """\
58 """, """\
59 for a in range(5):
59 for a in range(5):
60 print(a)
60 print(a)
61 print(a ** 2)
61 print(a ** 2)
62 """)
62 """)
63
63
64
65 IPYTHON_PROMPT_VI_INS = ("""\
66 [ins] In [11]: def a():
67 ...: 123
68 ...:
69 ...: 123
70 """, """\
71 def a():
72 123
73
74 123
75 """)
76
77 IPYTHON_PROMPT_VI_NAV = ("""\
78 [nav] In [11]: def a():
79 ...: 123
80 ...:
81 ...: 123
82 """, """\
83 def a():
84 123
85
86 123
87 """)
88
89
64 def test_ipython_prompt():
90 def test_ipython_prompt():
65 for sample, expected in [IPYTHON_PROMPT, IPYTHON_PROMPT_L2]:
91 for sample, expected in [IPYTHON_PROMPT, IPYTHON_PROMPT_L2,
92 IPYTHON_PROMPT_VI_INS, IPYTHON_PROMPT_VI_NAV]:
66 nt.assert_equal(ipt2.ipython_prompt(sample.splitlines(keepends=True)),
93 nt.assert_equal(ipt2.ipython_prompt(sample.splitlines(keepends=True)),
67 expected.splitlines(keepends=True))
94 expected.splitlines(keepends=True))
68
95
96
69 INDENT_SPACES = ("""\
97 INDENT_SPACES = ("""\
70 if True:
98 if True:
71 a = 3
99 a = 3
72 """, """\
100 """, """\
73 if True:
101 if True:
74 a = 3
102 a = 3
75 """)
103 """)
76
104
77 INDENT_TABS = ("""\
105 INDENT_TABS = ("""\
78 \tif True:
106 \tif True:
79 \t\tb = 4
107 \t\tb = 4
80 """, """\
108 """, """\
81 if True:
109 if True:
82 \tb = 4
110 \tb = 4
83 """)
111 """)
84
112
85 def test_leading_indent():
113 def test_leading_indent():
86 for sample, expected in [INDENT_SPACES, INDENT_TABS]:
114 for sample, expected in [INDENT_SPACES, INDENT_TABS]:
87 nt.assert_equal(ipt2.leading_indent(sample.splitlines(keepends=True)),
115 nt.assert_equal(ipt2.leading_indent(sample.splitlines(keepends=True)),
88 expected.splitlines(keepends=True))
116 expected.splitlines(keepends=True))
89
117
90 LEADING_EMPTY_LINES = ("""\
118 LEADING_EMPTY_LINES = ("""\
91 \t
119 \t
92
120
93 if True:
121 if True:
94 a = 3
122 a = 3
95
123
96 b = 4
124 b = 4
97 """, """\
125 """, """\
98 if True:
126 if True:
99 a = 3
127 a = 3
100
128
101 b = 4
129 b = 4
102 """)
130 """)
103
131
104 ONLY_EMPTY_LINES = ("""\
132 ONLY_EMPTY_LINES = ("""\
105 \t
133 \t
106
134
107 """, """\
135 """, """\
108 \t
136 \t
109
137
110 """)
138 """)
111
139
112 def test_leading_empty_lines():
140 def test_leading_empty_lines():
113 for sample, expected in [LEADING_EMPTY_LINES, ONLY_EMPTY_LINES]:
141 for sample, expected in [LEADING_EMPTY_LINES, ONLY_EMPTY_LINES]:
114 nt.assert_equal(
142 nt.assert_equal(
115 ipt2.leading_empty_lines(sample.splitlines(keepends=True)),
143 ipt2.leading_empty_lines(sample.splitlines(keepends=True)),
116 expected.splitlines(keepends=True))
144 expected.splitlines(keepends=True))
117
145
118 CRLF_MAGIC = ([
146 CRLF_MAGIC = ([
119 "%%ls\r\n"
147 "%%ls\r\n"
120 ], [
148 ], [
121 "get_ipython().run_cell_magic('ls', '', '')\n"
149 "get_ipython().run_cell_magic('ls', '', '')\n"
122 ])
150 ])
123
151
124 def test_crlf_magic():
152 def test_crlf_magic():
125 for sample, expected in [CRLF_MAGIC]:
153 for sample, expected in [CRLF_MAGIC]:
126 nt.assert_equal(ipt2.cell_magic(sample), expected)
154 nt.assert_equal(ipt2.cell_magic(sample), expected)
General Comments 0
You need to be logged in to leave comments. Login now