Show More
@@ -156,7 +156,8 b' def last_blank(src):' | |||||
156 | return src == '\n' or bool(last_blank_re.match(src)) |
|
156 | return src == '\n' or bool(last_blank_re.match(src)) | |
157 |
|
157 | |||
158 |
|
158 | |||
159 |
last_two_blanks_re = re.compile(r'^ |
|
159 | last_two_blanks_re = re.compile(r'^\n\s*\n\s*$', re.MULTILINE) | |
|
160 | last_two_blanks_re2 = re.compile(r'^.+\n\s*\n\s+$', re.MULTILINE) | |||
160 |
|
161 | |||
161 | def last_two_blanks(src): |
|
162 | def last_two_blanks(src): | |
162 | """Determine if the input source ends in two blanks. |
|
163 | """Determine if the input source ends in two blanks. | |
@@ -168,7 +169,8 b' def last_two_blanks(src):' | |||||
168 | src : string |
|
169 | src : string | |
169 | A single or multiline string. |
|
170 | A single or multiline string. | |
170 | """ |
|
171 | """ | |
171 | return bool(last_two_blanks_re.match(src)) |
|
172 | return (bool(last_two_blanks_re.match(src)) or | |
|
173 | bool(last_two_blanks_re2.match(src)) ) | |||
172 |
|
174 | |||
173 |
|
175 | |||
174 | def remove_comments(src): |
|
176 | def remove_comments(src): |
@@ -616,17 +616,20 b' def test_last_two_blanks():' | |||||
616 | nt.assert_false(isp.last_two_blanks('abc')) |
|
616 | nt.assert_false(isp.last_two_blanks('abc')) | |
617 | nt.assert_false(isp.last_two_blanks('abc\n')) |
|
617 | nt.assert_false(isp.last_two_blanks('abc\n')) | |
618 | nt.assert_false(isp.last_two_blanks('abc\n\na')) |
|
618 | nt.assert_false(isp.last_two_blanks('abc\n\na')) | |
|
619 | nt.assert_false(isp.last_two_blanks('abc\n \n')) | |||
|
620 | nt.assert_false(isp.last_two_blanks('abc\n\n')) | |||
619 |
|
621 | |||
620 | nt.assert_true(isp.last_two_blanks('\n\n')) |
|
622 | nt.assert_true(isp.last_two_blanks('\n\n')) | |
621 | nt.assert_true(isp.last_two_blanks('\n\n ')) |
|
623 | nt.assert_true(isp.last_two_blanks('\n\n ')) | |
622 | nt.assert_true(isp.last_two_blanks('\n \n')) |
|
624 | nt.assert_true(isp.last_two_blanks('\n \n')) | |
623 | nt.assert_true(isp.last_two_blanks('abc\n \n')) |
|
|||
624 | nt.assert_true(isp.last_two_blanks('abc\n\n ')) |
|
625 | nt.assert_true(isp.last_two_blanks('abc\n\n ')) | |
625 | nt.assert_true(isp.last_two_blanks('abc\n\n')) |
|
626 | nt.assert_true(isp.last_two_blanks('abc\n\n\n')) | |
|
627 | nt.assert_true(isp.last_two_blanks('abc\n\n \n')) | |||
|
628 | nt.assert_true(isp.last_two_blanks('abc\n\n \n ')) | |||
|
629 | nt.assert_true(isp.last_two_blanks('abc\n\n \n \n')) | |||
626 |
|
630 | |||
627 |
|
631 | |||
628 | def test_cell_magics(): |
|
632 | def test_cell_magics_line_mode(): | |
629 | from IPython.core import magic |
|
|||
630 |
|
633 | |||
631 | cell = """\ |
|
634 | cell = """\ | |
632 | %%cellm line |
|
635 | %%cellm line | |
@@ -649,6 +652,32 b' body' | |||||
649 | nt.assert_false(sp.push_accepts_more()) #3 |
|
652 | nt.assert_false(sp.push_accepts_more()) #3 | |
650 |
|
653 | |||
651 |
|
654 | |||
|
655 | def test_cell_magics_cell_mode(): | |||
|
656 | ||||
|
657 | cell = """\ | |||
|
658 | %%cellm line | |||
|
659 | body | |||
|
660 | """ | |||
|
661 | sp = isp.IPythonInputSplitter(input_mode='cell') | |||
|
662 | sp.push(cell) | |||
|
663 | nt.assert_equal(sp.cell_magic_parts, ['body\n']) | |||
|
664 | out = sp.source | |||
|
665 | ref = u"get_ipython()._cell_magic(u'cellm', u'line')\n" | |||
|
666 | nt.assert_equal(out, ref) | |||
|
667 | ||||
|
668 | sp.reset() | |||
|
669 | ||||
|
670 | src = '%%cellm line2\n' | |||
|
671 | sp.push(src) | |||
|
672 | nt.assert_true(sp.push_accepts_more()) #1 | |||
|
673 | src += '\n' | |||
|
674 | sp.push(src) | |||
|
675 | nt.assert_true(sp.push_accepts_more()) #2 | |||
|
676 | src += '\n' | |||
|
677 | sp.push(src) | |||
|
678 | nt.assert_false(sp.push_accepts_more()) #3 | |||
|
679 | ||||
|
680 | ||||
652 | class IPythonInputTestCase(InputSplitterTestCase): |
|
681 | class IPythonInputTestCase(InputSplitterTestCase): | |
653 | """By just creating a new class whose .isp is a different instance, we |
|
682 | """By just creating a new class whose .isp is a different instance, we | |
654 | re-run the same test battery on the new input splitter. |
|
683 | re-run the same test battery on the new input splitter. |
General Comments 0
You need to be logged in to leave comments.
Login now