Show More
@@ -539,6 +539,35 b' def test_run_tb():' | |||
|
539 | 539 | del ip.user_ns['bar'] |
|
540 | 540 | del ip.user_ns['foo'] |
|
541 | 541 | |
|
542 | ||
|
543 | def test_multiprocessing_run(): | |
|
544 | """Set we can run mutiprocesgin without messing up up main namespace | |
|
545 | ||
|
546 | Note that import `nose.tools as nt` mdify the value s | |
|
547 | sys.module['__mp_main__'] so wee need to temporarily set it to None to test | |
|
548 | the issue. | |
|
549 | """ | |
|
550 | with TemporaryDirectory() as td: | |
|
551 | mpm = sys.modules.get('__mp_main__') | |
|
552 | assert mpm is not None | |
|
553 | sys.modules['__mp_main__'] = None | |
|
554 | try: | |
|
555 | path = pjoin(td, 'test.py') | |
|
556 | with open(path, 'w') as f: | |
|
557 | f.write("import multiprocessing\nprint('hoy')") | |
|
558 | with capture_output() as io: | |
|
559 | _ip.run_line_magic('run', path) | |
|
560 | _ip.run_cell("i_m_undefined") | |
|
561 | out = io.stdout | |
|
562 | nt.assert_in("hoy", out) | |
|
563 | nt.assert_not_in("AttributeError", out) | |
|
564 | nt.assert_in("NameError", out) | |
|
565 | nt.assert_equal(out.count("---->"), 1) | |
|
566 | except: | |
|
567 | raise | |
|
568 | finally: | |
|
569 | sys.modules['__mp_main__'] = mpm | |
|
570 | ||
|
542 | 571 | @dec.knownfailureif(sys.platform == 'win32', "writes to io.stdout aren't captured on Windows") |
|
543 | 572 | def test_script_tb(): |
|
544 | 573 | """Test traceback offset in `ipython script.py`""" |
General Comments 0
You need to be logged in to leave comments.
Login now