##// END OF EJS Templates
Backport PR #10073: include docstring in detail_level=1 if no source is found...
Thomas Kluyver -
Show More
@@ -647,7 +647,7 b' class Inspector(Colorable):'
647 # Functions, methods, classes
647 # Functions, methods, classes
648 append_field(_mime, 'Signature', 'definition', code_formatter)
648 append_field(_mime, 'Signature', 'definition', code_formatter)
649 append_field(_mime, 'Init signature', 'init_definition', code_formatter)
649 append_field(_mime, 'Init signature', 'init_definition', code_formatter)
650 if detail_level > 0:
650 if detail_level > 0 and info['source']:
651 append_field(_mime, 'Source', 'source', code_formatter)
651 append_field(_mime, 'Source', 'source', code_formatter)
652 else:
652 else:
653 append_field(_mime, 'Docstring', 'docstring', formatter)
653 append_field(_mime, 'Docstring', 'docstring', formatter)
@@ -19,7 +19,7 b' from IPython.core.magic import (Magics, magics_class, line_magic,'
19 register_line_cell_magic)
19 register_line_cell_magic)
20 from decorator import decorator
20 from decorator import decorator
21 from IPython.testing.decorators import skipif
21 from IPython.testing.decorators import skipif
22 from IPython.testing.tools import AssertPrints
22 from IPython.testing.tools import AssertPrints, AssertNotPrints
23 from IPython.utils.path import compress_user
23 from IPython.utils.path import compress_user
24 from IPython.utils import py3compat
24 from IPython.utils import py3compat
25 from IPython.utils.signatures import Signature, Parameter
25 from IPython.utils.signatures import Signature, Parameter
@@ -404,12 +404,12 b' def test_property_docstring_is_in_info_for_detail_level_0():'
404 pass
404 pass
405
405
406 ip.user_ns['a_obj'] = A()
406 ip.user_ns['a_obj'] = A()
407 nt.assert_equals(
407 nt.assert_equal(
408 'This is `foobar` property.',
408 'This is `foobar` property.',
409 ip.object_inspect('a_obj.foobar', detail_level=0)['docstring'])
409 ip.object_inspect('a_obj.foobar', detail_level=0)['docstring'])
410
410
411 ip.user_ns['a_cls'] = A
411 ip.user_ns['a_cls'] = A
412 nt.assert_equals(
412 nt.assert_equal(
413 'This is `foobar` property.',
413 'This is `foobar` property.',
414 ip.object_inspect('a_cls.foobar', detail_level=0)['docstring'])
414 ip.object_inspect('a_cls.foobar', detail_level=0)['docstring'])
415
415
@@ -427,6 +427,29 b' def test_pinfo_nonascii():'
427 ip._inspect('pinfo', 'nonascii2', detail_level=1)
427 ip._inspect('pinfo', 'nonascii2', detail_level=1)
428
428
429
429
430 def test_pinfo_docstring_no_source():
431 """Docstring should be included with detail_level=1 if there is no source"""
432 with AssertPrints('Docstring:'):
433 ip._inspect('pinfo', 'str.format', detail_level=0)
434 with AssertPrints('Docstring:'):
435 ip._inspect('pinfo', 'str.format', detail_level=1)
436
437
438 def test_pinfo_no_docstring_if_source():
439 """Docstring should not be included with detail_level=1 if source is found"""
440 def foo():
441 """foo has a docstring"""
442
443 ip.user_ns['foo'] = foo
444
445 with AssertPrints('Docstring:'):
446 ip._inspect('pinfo', 'foo', detail_level=0)
447 with AssertPrints('Source:'):
448 ip._inspect('pinfo', 'foo', detail_level=1)
449 with AssertNotPrints('Docstring:'):
450 ip._inspect('pinfo', 'foo', detail_level=1)
451
452
430 def test_pinfo_magic():
453 def test_pinfo_magic():
431 with AssertPrints('Docstring:'):
454 with AssertPrints('Docstring:'):
432 ip._inspect('pinfo', 'lsmagic', detail_level=0)
455 ip._inspect('pinfo', 'lsmagic', detail_level=0)
General Comments 0
You need to be logged in to leave comments. Login now