##// END OF EJS Templates
3 at last, 3 at last, thank Guido BDFL......
Paul Ivanov -
Show More
@@ -1,51 +1,54 b''
1 1 """Test embedding of IPython"""
2 2
3 3 #-----------------------------------------------------------------------------
4 4 # Copyright (C) 2013 The IPython Development Team
5 5 #
6 6 # Distributed under the terms of the BSD License. The full license is in
7 7 # the file COPYING, distributed as part of this software.
8 8 #-----------------------------------------------------------------------------
9 9
10 10 #-----------------------------------------------------------------------------
11 11 # Imports
12 12 #-----------------------------------------------------------------------------
13 13
14 14 import sys
15 15 import nose.tools as nt
16 16 from IPython.utils.process import process_handler
17 17 from IPython.utils.tempdir import NamedFileInTemporaryDirectory
18 18
19 19 #-----------------------------------------------------------------------------
20 20 # Tests
21 21 #-----------------------------------------------------------------------------
22 22
23 23 _sample_embed = """
24 24 from __future__ import print_function
25 25 import IPython
26 26
27 27 a = 3
28 28 b = 14
29 29 print(a, '.', b)
30 30
31 31 IPython.embed()
32 32
33 33 print('bye!')
34 34 """
35 35
36 _exit = "exit\r".encode('UTF-8')
37
36 38 def test_ipython_embed():
37 39 """test that `IPython.embed()` works"""
38 40 with NamedFileInTemporaryDirectory('file_with_embed.py') as f:
39 f.write(_sample_embed)
41 f.write(_sample_embed.encode('UTF-8'))
40 42 f.flush()
41 43
42 44 # run `python file_with_embed.py`
43 45 cmd = [sys.executable, f.name]
44 46
45 47 _, out, p = process_handler(cmd,
46 lambda p: (p.stdin.write("exit\r"), p.communicate()[:], p))
48 lambda p: (p.stdin.write(_exit), p.communicate()[:], p))
49 std = out[0].decode('UTF-8')
47 50 nt.assert_equal(p.returncode, 0)
48 nt.assert_in('3 . 14', out[0])
49 nt.assert_in('IPython', out[0])
50 nt.assert_in('bye!', out[0])
51 nt.assert_in('3 . 14', std)
52 nt.assert_in('IPython', std)
53 nt.assert_in('bye!', std)
51 54
General Comments 0
You need to be logged in to leave comments. Login now