Show More
@@ -28,6 +28,7 b' from nose import SkipTest' | |||||
28 | from IPython.testing import decorators as dec |
|
28 | from IPython.testing import decorators as dec | |
29 | from IPython.testing import tools as tt |
|
29 | from IPython.testing import tools as tt | |
30 | from IPython.utils import py3compat |
|
30 | from IPython.utils import py3compat | |
|
31 | from IPython.utils.io import capture_output | |||
31 | from IPython.utils.tempdir import TemporaryDirectory |
|
32 | from IPython.utils.tempdir import TemporaryDirectory | |
32 | from IPython.core import debugger |
|
33 | from IPython.core import debugger | |
33 |
|
34 | |||
@@ -474,3 +475,40 b' def test_run__name__():' | |||||
474 |
|
475 | |||
475 | _ip.magic('run -n {}'.format(path)) |
|
476 | _ip.magic('run -n {}'.format(path)) | |
476 | nt.assert_equal(_ip.user_ns.pop('q'), 'foo') |
|
477 | nt.assert_equal(_ip.user_ns.pop('q'), 'foo') | |
|
478 | ||||
|
479 | def test_run_tb(): | |||
|
480 | """Test traceback offset in %run""" | |||
|
481 | with TemporaryDirectory() as td: | |||
|
482 | path = pjoin(td, 'foo.py') | |||
|
483 | with open(path, 'w') as f: | |||
|
484 | f.write('\n'.join([ | |||
|
485 | "def foo():", | |||
|
486 | " return bar()", | |||
|
487 | "def bar():", | |||
|
488 | " raise RuntimeError('hello!')", | |||
|
489 | "foo()", | |||
|
490 | ])) | |||
|
491 | with capture_output() as io: | |||
|
492 | _ip.magic('run {}'.format(path)) | |||
|
493 | out = io.stdout | |||
|
494 | nt.assert_not_in("execfile", out) | |||
|
495 | nt.assert_in("RuntimeError", out) | |||
|
496 | nt.assert_equal(out.count("---->"), 3) | |||
|
497 | ||||
|
498 | def test_script_tb(): | |||
|
499 | """Test traceback offset in `ipython script.py`""" | |||
|
500 | with TemporaryDirectory() as td: | |||
|
501 | path = pjoin(td, 'foo.py') | |||
|
502 | with open(path, 'w') as f: | |||
|
503 | f.write('\n'.join([ | |||
|
504 | "def foo():", | |||
|
505 | " return bar()", | |||
|
506 | "def bar():", | |||
|
507 | " raise RuntimeError('hello!')", | |||
|
508 | "foo()", | |||
|
509 | ])) | |||
|
510 | out, err = tt.ipexec(path) | |||
|
511 | nt.assert_not_in("execfile", out) | |||
|
512 | nt.assert_in("RuntimeError", out) | |||
|
513 | nt.assert_equal(out.count("---->"), 3) | |||
|
514 |
General Comments 0
You need to be logged in to leave comments.
Login now