##// END OF EJS Templates
This commit,...
Srinivas Reddy Thatiparthy -
Show More
@@ -41,6 +41,7 b' from IPython.utils.wildcard import list_namespace'
41 41 from IPython.utils.coloransi import TermColors, ColorScheme, ColorSchemeTable
42 42 from IPython.utils.py3compat import cast_unicode, string_types, PY3
43 43 from IPython.utils.colorable import Colorable
44 from IPython.utils.decorators import undoc
44 45
45 46 from pygments import highlight
46 47 from pygments.lexers import PythonLexer
@@ -231,31 +232,12 b' def format_argspec(argspec):'
231 232 return inspect.formatargspec(argspec['args'], argspec['varargs'],
232 233 argspec['varkw'], argspec['defaults'])
233 234
234
235 @undoc
235 236 def call_tip(oinfo, format_call=True):
236 """Extract call tip data from an oinfo dict.
237
238 Parameters
239 ----------
240 oinfo : dict
241
242 format_call : bool, optional
243 If True, the call line is formatted and returned as a string. If not, a
244 tuple of (name, argspec) is returned.
245
246 Returns
247 -------
248 call_info : None, str or (str, dict) tuple.
249 When format_call is True, the whole call information is formattted as a
250 single string. Otherwise, the object's name and its argspec dict are
251 returned. If no call information is available, None is returned.
252
253 docstring : str or None
254 The most relevant docstring for calling purposes is returned, if
255 available. The priority is: call docstring for callable instances, then
256 constructor docstring for classes, then main object's docstring otherwise
257 (regular functions).
237 """DEPRECATED. Extract call tip data from an oinfo dict.
258 238 """
239 warnings.warn('`call_tip` function is deprecated as of IPython 5.2 '
240 'and will have no effects.', DeprecationWarning, stacklevel=2)
259 241 # Get call definition
260 242 argspec = oinfo.get('argspec')
261 243 if argspec is None:
@@ -206,69 +206,10 b' class SerialLiar(object):'
206 206 def __getattr__(self, item):
207 207 return SerialLiar(self.max_fibbing_twig, self.lies_told + 1)
208 208
209
210 def check_calltip(obj, name, call, docstring):
211 """Generic check pattern all calltip tests will use"""
212 info = inspector.info(obj, name)
213 call_line, ds = oinspect.call_tip(info)
214 nt.assert_equal(call_line, call)
215 nt.assert_equal(ds, docstring)
216
217 209 #-----------------------------------------------------------------------------
218 210 # Tests
219 211 #-----------------------------------------------------------------------------
220 212
221 def test_calltip_class():
222 check_calltip(Call, 'Call', 'Call(x, y=1)', Call.__init__.__doc__)
223
224
225 def test_calltip_instance():
226 c = Call(1)
227 check_calltip(c, 'c', 'c(*a, **kw)', c.__call__.__doc__)
228
229
230 def test_calltip_method():
231 c = Call(1)
232 check_calltip(c.method, 'c.method', 'c.method(x, z=2)', c.method.__doc__)
233
234
235 def test_calltip_function():
236 check_calltip(f, 'f', 'f(x, y=2, *a, **kw)', f.__doc__)
237
238
239 def test_calltip_function2():
240 check_calltip(g, 'g', 'g(y, z=3, *a, **kw)', '<no docstring>')
241
242
243 @skipif(sys.version_info >= (3, 5))
244 def test_calltip_builtin():
245 check_calltip(sum, 'sum', None, sum.__doc__)
246
247
248 def test_calltip_line_magic():
249 check_calltip(lmagic, 'lmagic', 'lmagic(line)', "A line magic")
250
251
252 def test_calltip_cell_magic():
253 check_calltip(cmagic, 'cmagic', 'cmagic(line, cell)', "A cell magic")
254
255
256 def test_calltip_line_cell_magic():
257 check_calltip(lcmagic, 'lcmagic', 'lcmagic(line, cell=None)',
258 "A line/cell magic")
259
260
261 def test_class_magics():
262 cm = SimpleMagics(ip)
263 ip.register_magics(cm)
264 check_calltip(cm.Clmagic, 'Clmagic', 'Clmagic(cline)',
265 "A class-based line magic")
266 check_calltip(cm.Ccmagic, 'Ccmagic', 'Ccmagic(cline, ccell)',
267 "A class-based cell magic")
268 check_calltip(cm.Clcmagic, 'Clcmagic', 'Clcmagic(cline, ccell=None)',
269 "A class-based line/cell magic")
270
271
272 213 def test_info():
273 214 "Check that Inspector.info fills out various fields as expected."
274 215 i = inspector.info(Call, oname='Call')
General Comments 0
You need to be logged in to leave comments. Login now