-
-
Notifications
You must be signed in to change notification settings - Fork 31.4k
Open
Labels
testsTests in the Lib/test dirTests in the Lib/test dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Right now test_inspect
checks getmembers
with mostly classes and methods.
It does not test: function, traceback, code, frame, generator, coroutine, and builtin objects.
We should also test how predicate
works for these objects.
However, they are listed in the docs:
cpython/Doc/library/inspect.rst
Lines 47 to 248 in a18c985
+===========+===================+===========================+ | |
| class | __doc__ | documentation string | | |
+-----------+-------------------+---------------------------+ | |
| | __name__ | name with which this | | |
| | | class was defined | | |
+-----------+-------------------+---------------------------+ | |
| | __qualname__ | qualified name | | |
+-----------+-------------------+---------------------------+ | |
| | __module__ | name of module in which | | |
| | | this class was defined | | |
+-----------+-------------------+---------------------------+ | |
| method | __doc__ | documentation string | | |
+-----------+-------------------+---------------------------+ | |
| | __name__ | name with which this | | |
| | | method was defined | | |
+-----------+-------------------+---------------------------+ | |
| | __qualname__ | qualified name | | |
+-----------+-------------------+---------------------------+ | |
| | __func__ | function object | | |
| | | containing implementation | | |
| | | of method | | |
+-----------+-------------------+---------------------------+ | |
| | __self__ | instance to which this | | |
| | | method is bound, or | | |
| | | ``None`` | | |
+-----------+-------------------+---------------------------+ | |
| | __module__ | name of module in which | | |
| | | this method was defined | | |
+-----------+-------------------+---------------------------+ | |
| function | __doc__ | documentation string | | |
+-----------+-------------------+---------------------------+ | |
| | __name__ | name with which this | | |
| | | function was defined | | |
+-----------+-------------------+---------------------------+ | |
| | __qualname__ | qualified name | | |
+-----------+-------------------+---------------------------+ | |
| | __code__ | code object containing | | |
| | | compiled function | | |
| | | :term:`bytecode` | | |
+-----------+-------------------+---------------------------+ | |
| | __defaults__ | tuple of any default | | |
| | | values for positional or | | |
| | | keyword parameters | | |
+-----------+-------------------+---------------------------+ | |
| | __kwdefaults__ | mapping of any default | | |
| | | values for keyword-only | | |
| | | parameters | | |
+-----------+-------------------+---------------------------+ | |
| | __globals__ | global namespace in which | | |
| | | this function was defined | | |
+-----------+-------------------+---------------------------+ | |
| | __builtins__ | builtins namespace | | |
+-----------+-------------------+---------------------------+ | |
| | __annotations__ | mapping of parameters | | |
| | | names to annotations; | | |
| | | ``"return"`` key is | | |
| | | reserved for return | | |
| | | annotations. | | |
+-----------+-------------------+---------------------------+ | |
| | __module__ | name of module in which | | |
| | | this function was defined | | |
+-----------+-------------------+---------------------------+ | |
| traceback | tb_frame | frame object at this | | |
| | | level | | |
+-----------+-------------------+---------------------------+ | |
| | tb_lasti | index of last attempted | | |
| | | instruction in bytecode | | |
+-----------+-------------------+---------------------------+ | |
| | tb_lineno | current line number in | | |
| | | Python source code | | |
+-----------+-------------------+---------------------------+ | |
| | tb_next | next inner traceback | | |
| | | object (called by this | | |
| | | level) | | |
+-----------+-------------------+---------------------------+ | |
| frame | f_back | next outer frame object | | |
| | | (this frame's caller) | | |
+-----------+-------------------+---------------------------+ | |
| | f_builtins | builtins namespace seen | | |
| | | by this frame | | |
+-----------+-------------------+---------------------------+ | |
| | f_code | code object being | | |
| | | executed in this frame | | |
+-----------+-------------------+---------------------------+ | |
| | f_globals | global namespace seen by | | |
| | | this frame | | |
+-----------+-------------------+---------------------------+ | |
| | f_lasti | index of last attempted | | |
| | | instruction in bytecode | | |
+-----------+-------------------+---------------------------+ | |
| | f_lineno | current line number in | | |
| | | Python source code | | |
+-----------+-------------------+---------------------------+ | |
| | f_locals | local namespace seen by | | |
| | | this frame | | |
+-----------+-------------------+---------------------------+ | |
| | f_trace | tracing function for this | | |
| | | frame, or ``None`` | | |
+-----------+-------------------+---------------------------+ | |
| code | co_argcount | number of arguments (not | | |
| | | including keyword only | | |
| | | arguments, \* or \*\* | | |
| | | args) | | |
+-----------+-------------------+---------------------------+ | |
| | co_code | string of raw compiled | | |
| | | bytecode | | |
+-----------+-------------------+---------------------------+ | |
| | co_cellvars | tuple of names of cell | | |
| | | variables (referenced by | | |
| | | containing scopes) | | |
+-----------+-------------------+---------------------------+ | |
| | co_consts | tuple of constants used | | |
| | | in the bytecode | | |
+-----------+-------------------+---------------------------+ | |
| | co_filename | name of file in which | | |
| | | this code object was | | |
| | | created | | |
+-----------+-------------------+---------------------------+ | |
| | co_firstlineno | number of first line in | | |
| | | Python source code | | |
+-----------+-------------------+---------------------------+ | |
| | co_flags | bitmap of ``CO_*`` flags, | | |
| | | read more :ref:`here | | |
| | | <inspect-module-co-flags>`| | |
+-----------+-------------------+---------------------------+ | |
| | co_lnotab | encoded mapping of line | | |
| | | numbers to bytecode | | |
| | | indices | | |
+-----------+-------------------+---------------------------+ | |
| | co_freevars | tuple of names of free | | |
| | | variables (referenced via | | |
| | | a function's closure) | | |
+-----------+-------------------+---------------------------+ | |
| | co_posonlyargcount| number of positional only | | |
| | | arguments | | |
+-----------+-------------------+---------------------------+ | |
| | co_kwonlyargcount | number of keyword only | | |
| | | arguments (not including | | |
| | | \*\* arg) | | |
+-----------+-------------------+---------------------------+ | |
| | co_name | name with which this code | | |
| | | object was defined | | |
+-----------+-------------------+---------------------------+ | |
| | co_qualname | fully qualified name with | | |
| | | which this code object | | |
| | | was defined | | |
+-----------+-------------------+---------------------------+ | |
| | co_names | tuple of names other | | |
| | | than arguments and | | |
| | | function locals | | |
+-----------+-------------------+---------------------------+ | |
| | co_nlocals | number of local variables | | |
+-----------+-------------------+---------------------------+ | |
| | co_stacksize | virtual machine stack | | |
| | | space required | | |
+-----------+-------------------+---------------------------+ | |
| | co_varnames | tuple of names of | | |
| | | arguments and local | | |
| | | variables | | |
+-----------+-------------------+---------------------------+ | |
| generator | __name__ | name | | |
+-----------+-------------------+---------------------------+ | |
| | __qualname__ | qualified name | | |
+-----------+-------------------+---------------------------+ | |
| | gi_frame | frame | | |
+-----------+-------------------+---------------------------+ | |
| | gi_running | is the generator running? | | |
+-----------+-------------------+---------------------------+ | |
| | gi_code | code | | |
+-----------+-------------------+---------------------------+ | |
| | gi_yieldfrom | object being iterated by | | |
| | | ``yield from``, or | | |
| | | ``None`` | | |
+-----------+-------------------+---------------------------+ | |
| coroutine | __name__ | name | | |
+-----------+-------------------+---------------------------+ | |
| | __qualname__ | qualified name | | |
+-----------+-------------------+---------------------------+ | |
| | cr_await | object being awaited on, | | |
| | | or ``None`` | | |
+-----------+-------------------+---------------------------+ | |
| | cr_frame | frame | | |
+-----------+-------------------+---------------------------+ | |
| | cr_running | is the coroutine running? | | |
+-----------+-------------------+---------------------------+ | |
| | cr_code | code | | |
+-----------+-------------------+---------------------------+ | |
| | cr_origin | where coroutine was | | |
| | | created, or ``None``. See | | |
| | | |coroutine-origin-link| | | |
+-----------+-------------------+---------------------------+ | |
| builtin | __doc__ | documentation string | | |
+-----------+-------------------+---------------------------+ | |
| | __name__ | original name of this | | |
| | | function or method | | |
+-----------+-------------------+---------------------------+ | |
| | __qualname__ | qualified name | | |
+-----------+-------------------+---------------------------+ | |
| | __self__ | instance to which a | | |
| | | method is bound, or | | |
| | | ``None`` | | |
+-----------+-------------------+---------------------------+ |
I will send a PR with new tests.
Linked PRs
Metadata
Metadata
Assignees
Labels
testsTests in the Lib/test dirTests in the Lib/test dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error