##// END OF EJS Templates
Fixes for test suite in win32 when all dependencies (esp. Twisted) are...
Fernando Perez -
Show More
@@ -318,3 +318,7 b" skip_if_not_osx = skipif(sys.platform != 'darwin',"
318 318 skipif_not_numpy = skipif(numpy_not_available,"This test requires numpy")
319 319
320 320 skipknownfailure = skip('This test is known to fail')
321
322 # A null 'decorator', useful to make more readable code that needs to pick
323 # between different decorators based on OS or other conditions
324 null_deco = lambda f: f
@@ -45,6 +45,7 b' from nose.core import TestProgram'
45 45 from IPython.utils import genutils
46 46 from IPython.utils.platutils import find_cmd, FindCmdError
47 47 from . import globalipapp
48 from . import tools
48 49 from .plugin.ipdoctest import IPythonDoctest
49 50
50 51 pjoin = path.join
@@ -57,6 +58,10 b' pjoin = path.join'
57 58 warnings.filterwarnings('ignore', 'the sets module is deprecated',
58 59 DeprecationWarning )
59 60
61 # This one also comes from Twisted
62 warnings.filterwarnings('ignore', 'the sha module is deprecated',
63 DeprecationWarning)
64
60 65 #-----------------------------------------------------------------------------
61 66 # Logic for skipping doctests
62 67 #-----------------------------------------------------------------------------
@@ -102,8 +107,11 b' def make_exclude():'
102 107 ipjoin('quarantine'),
103 108 ipjoin('deathrow'),
104 109 ipjoin('testing', 'attic'),
105 ipjoin('testing', 'tools'),
110 # This guy is probably attic material
106 111 ipjoin('testing', 'mkdoctests'),
112 # Testing inputhook will need a lot of thought, to figure out
113 # how to have tests that don't lock up with the gui event
114 # loops in the picture
107 115 ipjoin('lib', 'inputhook'),
108 116 # Config files aren't really importable stand-alone
109 117 ipjoin('config', 'default'),
@@ -193,9 +201,9 b' class IPTester(object):'
193 201 # path:
194 202 iptest_path = pjoin(genutils.get_ipython_package_dir(),
195 203 'scripts','iptest')
196 self.runner = ['python', iptest_path, '-v']
204 self.runner = tools.cmd2argv(iptest_path) + ['-v']
197 205 else:
198 self.runner = ['python', os.path.abspath(find_cmd('trial'))]
206 self.runner = tools.cmd2argv(os.path.abspath(find_cmd('trial')))
199 207 if params is None:
200 208 params = []
201 209 if isinstance(params,str):
@@ -52,8 +52,6 b" if sys.version[0]=='2':"
52 52 else:
53 53 from ._paramtestpy3 import ParametricTestCase
54 54
55 from . import globalipapp
56
57 55 #-----------------------------------------------------------------------------
58 56 # Classes and functions
59 57 #-----------------------------------------------------------------------------
@@ -83,6 +81,8 b' class IPython2PythonConverter(object):'
83 81
84 82 def __call__(self, ds):
85 83 """Convert IPython prompts to python ones in a string."""
84 from . import globalipapp
85
86 86 pyps1 = '>>> '
87 87 pyps2 = '... '
88 88 pyout = ''
@@ -25,6 +25,7 b' Authors'
25 25 #-----------------------------------------------------------------------------
26 26 # Required modules and packages
27 27 #-----------------------------------------------------------------------------
28 from __future__ import absolute_import
28 29
29 30 import os
30 31 import re
@@ -42,6 +43,8 b' except ImportError:'
42 43
43 44 from IPython.utils import genutils, platutils
44 45
46 from . import decorators as dec
47
45 48 #-----------------------------------------------------------------------------
46 49 # Globals
47 50 #-----------------------------------------------------------------------------
@@ -62,7 +65,11 b' if has_nose:'
62 65 # Functions and classes
63 66 #-----------------------------------------------------------------------------
64 67
68 # The docstring for full_path doctests differently on win32 (different path
69 # separator) so just skip the doctest there. The example remains informative.
70 doctest_deco = dec.skip_doctest if sys.platform == 'win32' else dec.null_deco
65 71
72 @doctest_deco
66 73 def full_path(startPath,files):
67 74 """Make full paths for all the listed files, based on startPath.
68 75
@@ -142,6 +149,40 b' def parse_test_output(txt):'
142 149 parse_test_output.__test__ = False
143 150
144 151
152 def cmd2argv(cmd):
153 r"""Take the path of a command and return a list (argv-style).
154
155 For a given path ``cmd``, this returns [cmd] if cmd's extension is .exe,
156 .com or .bat, and ['python', cmd] otherwise.
157
158 This is mostly a Windows utility, to deal with the fact that the scripts in
159 Windows get wrapped in .exe entry points, so we have to call them
160 differently.
161
162 Parameters
163 ----------
164 cmd : string
165 The path of the command.
166
167 Returns
168 -------
169 argv-style list.
170
171 Examples
172 --------
173 In [2]: cmd2argv('/usr/bin/ipython')
174 Out[2]: ['python', '/usr/bin/ipython']
175
176 In [3]: cmd2argv(r'C:\Python26\Scripts\ipython.exe')
177 Out[3]: ['C:\\Python26\\Scripts\\ipython.exe']
178 """
179 ext = os.path.splitext(cmd)[1]
180 if ext in ['.exe', '.com', '.bat']:
181 return [cmd]
182 else:
183 return ['python', cmd]
184
185
145 186 def temp_pyfile(src, ext='.py'):
146 187 """Make a temporary python file, return filename and filehandle.
147 188
General Comments 0
You need to be logged in to leave comments. Login now