##// END OF EJS Templates
Add transformers to understand code pasted with >>> or IPython prompts....
Add transformers to understand code pasted with >>> or IPython prompts. Now the following all work out of the box: In [8]: In [6]: for i in range(5): ...: ...: print i, ...: ...: ...: 0 1 2 3 4 In [10]: >>> width = 20 In [11]: >>> height = 5*9 In [12]: >>> width * height Out[12]: 900 And the history is still clean: In [13]: %hist -n [snipped] for i in range(5): print i, get_ipython().magic("hist -n") width = 20 height = 5*9 width * height This will be extremely useful when copy/pasting from interactive tutorials, doctests and examples. Also fixes %doctest_mode: https://bugs.launchpad.net/ipython/+bug/505404

File last commit:

r2353:65414365
r2426:61e33e8e
Show More
test_tools.py
61 lines | 2.0 KiB | text/x-python | PythonLexer
#!/usr/bin/env python
# encoding: utf-8
"""
Tests for testing.tools
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2008-2009 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.testing import decorators as dec
from IPython.testing.tools import full_path, parse_test_output
#-----------------------------------------------------------------------------
# Tests
#-----------------------------------------------------------------------------
@dec.skip_win32
def test_full_path_posix():
spath = '/foo/bar.py'
result = full_path(spath,['a.txt','b.txt'])
nt.assert_equal(result, ['/foo/a.txt', '/foo/b.txt'])
spath = '/foo'
result = full_path(spath,['a.txt','b.txt'])
nt.assert_equal(result, ['/a.txt', '/b.txt'])
result = full_path(spath,'a.txt')
nt.assert_equal(result, ['/a.txt'])
@dec.skip_if_not_win32
def test_full_path_win32():
spath = 'c:\\foo\\bar.py'
result = full_path(spath,['a.txt','b.txt'])
nt.assert_equal(result, ['c:\\foo\\a.txt', 'c:\\foo\\b.txt'])
spath = 'c:\\foo'
result = full_path(spath,['a.txt','b.txt'])
nt.assert_equal(result, ['c:\\a.txt', 'c:\\b.txt'])
result = full_path(spath,'a.txt')
nt.assert_equal(result, ['c:\\a.txt'])
def test_parser():
err = ("FAILED (errors=1)", 1, 0)
fail = ("FAILED (failures=1)", 0, 1)
both = ("FAILED (errors=1, failures=1)", 1, 1)
for txt, nerr, nfail in [err, fail, both]:
nerr1, nfail1 = parse_test_output(txt)
yield (nt.assert_equal, nerr, nerr1)
yield (nt.assert_equal, nfail, nfail1)