##// END OF EJS Templates
Massive reorganization of the IPython documentation. It is now ready to be hacked on by users. ...
Massive reorganization of the IPython documentation. It is now ready to be hacked on by users. Overall the transition to Sphinx is great. BUT, we have lots of broken links in the docs. Developers need to become familiar with how Sphinx handles links.

File last commit:

r1201:05d203a8
r1258:ccc2fc9b
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)