Show More
@@ -848,20 +848,27 b' class Inspector(Colorable):' | |||||
848 | except AttributeError: |
|
848 | except AttributeError: | |
849 | init_def = None |
|
849 | init_def = None | |
850 |
|
850 | |||
851 | if init_def: |
|
|||
852 | out['init_definition'] = init_def |
|
|||
853 |
|
||||
854 | # get the __init__ docstring |
|
851 | # get the __init__ docstring | |
855 | try: |
|
852 | try: | |
856 | obj_init = obj.__init__ |
|
853 | obj_init = obj.__init__ | |
857 | except AttributeError: |
|
854 | except AttributeError: | |
858 | init_ds = None |
|
855 | init_ds = None | |
859 | else: |
|
856 | else: | |
|
857 | if init_def is None: | |||
|
858 | # Get signature from init if top-level sig failed. | |||
|
859 | # Can happen for built-in types (list, etc.). | |||
|
860 | try: | |||
|
861 | init_def = self._getdef(obj_init, oname) | |||
|
862 | except AttributeError: | |||
|
863 | pass | |||
860 | init_ds = getdoc(obj_init) |
|
864 | init_ds = getdoc(obj_init) | |
861 | # Skip Python's auto-generated docstrings |
|
865 | # Skip Python's auto-generated docstrings | |
862 | if init_ds == _object_init_docstring: |
|
866 | if init_ds == _object_init_docstring: | |
863 | init_ds = None |
|
867 | init_ds = None | |
864 |
|
868 | |||
|
869 | if init_def: | |||
|
870 | out['init_definition'] = init_def | |||
|
871 | ||||
865 | if init_ds: |
|
872 | if init_ds: | |
866 | out['init_docstring'] = init_ds |
|
873 | out['init_docstring'] = init_ds | |
867 |
|
874 |
@@ -419,15 +419,34 b' def test_pdef():' | |||||
419 | def foo(): pass |
|
419 | def foo(): pass | |
420 | inspector.pdef(foo, 'foo') |
|
420 | inspector.pdef(foo, 'foo') | |
421 |
|
421 | |||
|
422 | ||||
422 | def test_pinfo_nonascii(): |
|
423 | def test_pinfo_nonascii(): | |
423 | # See gh-1177 |
|
424 | # See gh-1177 | |
424 | from . import nonascii2 |
|
425 | from . import nonascii2 | |
425 | ip.user_ns['nonascii2'] = nonascii2 |
|
426 | ip.user_ns['nonascii2'] = nonascii2 | |
426 | ip._inspect('pinfo', 'nonascii2', detail_level=1) |
|
427 | ip._inspect('pinfo', 'nonascii2', detail_level=1) | |
427 |
|
428 | |||
|
429 | ||||
428 | def test_pinfo_magic(): |
|
430 | def test_pinfo_magic(): | |
429 | with AssertPrints('Docstring:'): |
|
431 | with AssertPrints('Docstring:'): | |
430 | ip._inspect('pinfo', 'lsmagic', detail_level=0) |
|
432 | ip._inspect('pinfo', 'lsmagic', detail_level=0) | |
431 |
|
433 | |||
432 | with AssertPrints('Source:'): |
|
434 | with AssertPrints('Source:'): | |
433 | ip._inspect('pinfo', 'lsmagic', detail_level=1) |
|
435 | ip._inspect('pinfo', 'lsmagic', detail_level=1) | |
|
436 | ||||
|
437 | ||||
|
438 | def test_init_colors(): | |||
|
439 | # ensure colors are not present in signature info | |||
|
440 | info = inspector.info(HasSignature) | |||
|
441 | init_def = info['init_definition'] | |||
|
442 | nt.assert_not_in('[0m', init_def) | |||
|
443 | ||||
|
444 | ||||
|
445 | def test_builtin_init(): | |||
|
446 | info = inspector.info(list) | |||
|
447 | init_def = info['init_definition'] | |||
|
448 | # Python < 3.4 can't get init definition from builtins, | |||
|
449 | # but still exercise the inspection in case of error-raising bugs. | |||
|
450 | if sys.version_info >= (3,4): | |||
|
451 | nt.assert_is_not_none(init_def) | |||
|
452 |
General Comments 0
You need to be logged in to leave comments.
Login now