bpo-18578: Rename and document test.bytecode_helper as test.support.bytecode_helper (GH-15168)

Rename and document test.bytecode_helper as test.support.bytecode_helper
This commit is contained in:
Joannah Nanjekye 2019-09-12 10:02:59 +01:00 committed by Stéphane Wirtel
parent a06d683d7f
commit 92777d5e5a
5 changed files with 36 additions and 4 deletions

View File

@ -1503,3 +1503,33 @@ script execution tests.
containing the *source*. If *compiled* is ``True``, both source files will
be compiled and added to the zip package. Return a tuple of the full zip
path and the archive name for the zip file.
:mod:`test.support.bytecode_helper` --- Support tools for testing correct bytecode generation
=============================================================================================
.. module:: test.support.bytecode_helper
:synopsis: Support tools for testing correct bytecode generation.
The :mod:`test.support.bytecode_helper` module provides support for testing
and inspecting bytecode generation.
The module defines the follwing class:
.. class:: BytecodeTestCase(unittest.TestCase)
This class has custom assertion methods for inspecting bytecode.
.. method:: BytecodeTestCase.get_disassembly_as_string(co)
Return the disassembly of *co* as string.
.. method:: BytecodeTestCase.assertInBytecode(x, opname, argval=_UNSPECIFIED)
Return instr if *opname* is found, otherwise throws :exc:`AssertionError`.
.. method:: BytecodeTestCase.assertNotInBytecode(x, opname, argval=_UNSPECIFIED)
Throws :exc:`AssertionError` if *opname* is found.

View File

@ -15,7 +15,7 @@ class BytecodeTestCase(unittest.TestCase):
return s.getvalue()
def assertInBytecode(self, x, opname, argval=_UNSPECIFIED):
"""Returns instr if op is found, otherwise throws AssertionError"""
"""Returns instr if opname is found, otherwise throws AssertionError"""
for instr in dis.get_instructions(x):
if instr.opname == opname:
if argval is _UNSPECIFIED or instr.argval == argval:
@ -29,7 +29,7 @@ class BytecodeTestCase(unittest.TestCase):
self.fail(msg)
def assertNotInBytecode(self, x, opname, argval=_UNSPECIFIED):
"""Throws AssertionError if op is found"""
"""Throws AssertionError if opname is found"""
for instr in dis.get_instructions(x):
if instr.opname == opname:
disassembly = self.get_disassembly_as_string(x)

View File

@ -1,7 +1,7 @@
# Minimal tests for dis module
from test.support import captured_stdout
from test.bytecode_helper import BytecodeTestCase
from test.support.bytecode_helper import BytecodeTestCase
import unittest
import sys
import dis

View File

@ -1,7 +1,7 @@
import dis
import unittest
from test.bytecode_helper import BytecodeTestCase
from test.support.bytecode_helper import BytecodeTestCase
def count_instr_recursively(f, opname):

View File

@ -0,0 +1,2 @@
Renamed and documented `test.bytecode_helper` as `test.support.bytecode_helper`.
Patch by Joannah Nanjekye.