##// END OF EJS Templates
Fixed setupbase.py and MANIFEST.in to reflect all the changes to docs. Currently,...
Fixed setupbase.py and MANIFEST.in to reflect all the changes to docs. Currently, the full tree of our rst docs are not included in the data_files. Not sure if/how we want to handle that. It was easy when we had a single file documentation, but not we have a full directory hierarchy full of rst files.

File last commit:

r1201:05d203a8
r1259:55fa12a7
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)