##// END OF EJS Templates
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ipython branch. This is not a true merge in the formal sense because all history is not coming over with the files. For a detailed history of the added files, please see the ipython1-dev branch or the svn repository on scipy.org that ipython1-dev came from. More specifically, here is what I have done in this commit: 1) Moved the following by hand ipython1.config -> IPython.config ipython1.kernel -> IPython.kernel ipython1.external -> IPython.external ipython1.core -> IPython.kernel.core ipython1.testutils -> IPython.testing ipython1.tools -> IPython.tools 2) Moved IPython.tools.guid -> IPython1.external.guid 3) Renamed: ipython1 -> IPython IPython.core -> IPython.kernel.core IPython.testutils -> IPython.testing 4) Then did a "bzr add" for all the new stuff. That is all folks!

File last commit:

r1201:05d203a8
r1234:52b55407
Show More
test_cpaste.ipy
62 lines | 1.3 KiB | text/plain | TextLexer
"""Test cpaste magic"""
tests = {'pass': ["> > > run()",
">>> > run()",
"+++ run()",
"++ run()",
" >>> run()"],
'fail': ["+ + run()",
" ++ run()"]}
from StringIO import StringIO
import sys
stdin_save = sys.stdin
# NOTE: no blank lines allowed in function definition
def testcase(code,should_fail=False):
"""Execute code via 'cpaste' and ensure it was executed, unless
should_fail is set.
"""
_ip.user_ns['code_ran'] = False
#
src = StringIO()
src.write('\n')
src.write(code)
src.write('\n--\n')
src.seek(0)
#
sys.stdin = src
try:
cpaste
except:
if not should_fail:
raise AssertionError("Failure not expected : '%s'" %
code)
else:
assert code_ran
if should_fail:
raise AssertionError("Failure expected : '%s'" % code)
#
finally:
sys.stdin = stdin_save
#
def run():
"""Marker function: sets a flag when executed.
"""
_ip.user_ns['code_ran'] = True
return 'run' # return string so '+ run()' doesn't result in success
### Actual testing happens here
for code in tests['pass']:
testcase(code)
for code in tests['fail']:
testcase(code,should_fail=True)