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.
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:
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)
# 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
import dis
import unittest
-from test.bytecode_helper import BytecodeTestCase
+from test.support.bytecode_helper import BytecodeTestCase
def count_instr_recursively(f, opname):
--- /dev/null
+Renamed and documented `test.bytecode_helper` as `test.support.bytecode_helper`.\r
+Patch by Joannah Nanjekye.
\ No newline at end of file