##// END OF EJS Templates
Support both value tuple and upper, lower traits for both int and float widgets
Support both value tuple and upper, lower traits for both int and float widgets

File last commit:

r14840:68cef000
r17682:eed350de
Show More
test_embed.py
57 lines | 1.7 KiB | text/x-python | PythonLexer
"""Test embedding of IPython"""
#-----------------------------------------------------------------------------
# Copyright (C) 2013 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
import os
import sys
import nose.tools as nt
from IPython.utils.process import process_handler
from IPython.utils.tempdir import NamedFileInTemporaryDirectory
#-----------------------------------------------------------------------------
# Tests
#-----------------------------------------------------------------------------
_sample_embed = b"""
from __future__ import print_function
import IPython
a = 3
b = 14
print(a, '.', b)
IPython.embed()
print('bye!')
"""
_exit = b"exit\r"
def test_ipython_embed():
"""test that `IPython.embed()` works"""
with NamedFileInTemporaryDirectory('file_with_embed.py') as f:
f.write(_sample_embed)
f.flush()
f.close() # otherwise msft won't be able to read the file
# run `python file_with_embed.py`
cmd = [sys.executable, f.name]
out, p = process_handler(cmd, lambda p: (p.communicate(_exit), p))
std = out[0].decode('UTF-8')
nt.assert_equal(p.returncode, 0)
nt.assert_in('3 . 14', std)
if os.name != 'nt':
# TODO: Fix up our different stdout references, see issue gh-14
nt.assert_in('IPython', std)
nt.assert_in('bye!', std)