classification
Title: CoverageResult fails to merge input file with non-empty callers in trace.py (patch)
Type: behavior Stage:
Components: Library (Lib) Versions: Python 3.2, Python 3.1, Python 3.0, Python 2.7, Python 2.6, Python 2.5, Python 2.4
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: glinsvad (1)
Priority: Keywords patch

Created on 2009-11-06 18:12 by glinsvad, last changed 2009-11-06 18:12 by glinsvad.

Files
File name Uploaded Description Edit Remove
trace.diff glinsvad, 2009-11-06 18:11 Proposed patch for out of place 'callers' argument
Messages (1)
msg94991 - (view) Author: Christian Glinsvad (glinsvad) Date: 2009-11-06 18:11
CoverageResults expects arguments in the order "counts, calledfuncs,
infile, callers..." but the try statement in the last part of __init__
passes "counts, calledfuncs, callers" as positional arguments to a new
instance of the same class. Thus, the secondary instance erroneously
obtains a dict for the "infile" argument, so I propose passing "callers"
as a keyword argument to avoid this.

Not that this has gone unnoticed because an empty dict for the "infile"
argument evaluates to False in "if self.infile:", which must have been
intended as "if self.infile is not None:". If, however, the original
instance loads a pickle file with a non-empty "callers" argument, the
secondary instance tries to run "open({}, 'rb')", which yields:

TypeError: coercing to Unicode: need string or buffer, dict found
History
Date User Action Args
2009-11-06 18:12:00glinsvadcreate