def test_deprecated_find_lines(self): with self.assertWarns(DeprecationWarning): def foo(): pass trace.find_lines(foo.__code__, ["eggs"])
def opt_coverage(self): """ Generate coverage information in the _trial_temp/coverage. Requires Python 2.3.3. """ coverdir = 'coverage' print "Setting coverage directory to %s." % (coverdir, ) import trace # begin monkey patch --------------------------- # Before Python 2.4, this function asserted that 'filename' had # to end with '.py' This is wrong for at least two reasons: # 1. We might be wanting to find executable line nos in a script # 2. The implementation should use os.splitext # This monkey patch is the same function as in the stdlib (v2.3) # but with the assertion removed. def find_executable_linenos(filename): """Return dict where keys are line numbers in the line number table. """ #assert filename.endswith('.py') # YOU BASTARDS try: prog = open(filename).read() prog = '\n'.join(prog.splitlines()) + '\n' except IOError, err: sys.stderr.write("Not printing coverage data for %r: %s\n" % (filename, err)) sys.stderr.flush() return {} code = compile(prog, filename, "exec") strs = trace.find_strings(filename) return trace.find_lines(code, strs)