summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2010-06-13 22:28:36 -0400
committerNed Batchelder <ned@nedbatchelder.com>2010-06-13 22:28:36 -0400
commit3d1c1e7383bcb3ce0348a467b7b6dd8fde61d73f (patch)
treec47fa2a8755d1a43a0a3752decc8404031b8e9b2
parentbf5a93c1bd03e007219e616a6f6b0a30280dae30 (diff)
downloadpython-coveragepy-3d1c1e7383bcb3ce0348a467b7b6dd8fde61d73f.tar.gz
Yikes: when using the Python tracing function, we haven't been caching the results of should_trace since <<changeset a480f40d1fa4>>
-rw-r--r--TODO.txt7
-rw-r--r--coverage/collector.py5
2 files changed, 9 insertions, 3 deletions
diff --git a/TODO.txt b/TODO.txt
index b45c2c8..d2cf8d3 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,9 +1,12 @@
Coverage TODO
* Cleanups discovered while doing --source:
- - PyTracer doesn't use should_trace_cache!!
+ + PyTracer doesn't use should_trace_cache!!
- optparse recommends using make_option, not Option constructor
-
+* --source stuff:
+ - warn if a package is never found.
+ - warn if no data was collected
+ - tie --source into reporting
* plugin work
+ add --cover-include.
diff --git a/coverage/collector.py b/coverage/collector.py
index 06ccda7..55211f2 100644
--- a/coverage/collector.py
+++ b/coverage/collector.py
@@ -60,7 +60,10 @@ class PyTracer(object):
# in this file.
self.data_stack.append((self.cur_file_data, self.last_line))
filename = frame.f_code.co_filename
- tracename = self.should_trace(filename, frame)
+ tracename = self.should_trace_cache.get(filename)
+ if tracename is None:
+ tracename = self.should_trace(filename, frame)
+ self.should_trace_cache[filename] = tracename
if tracename:
if tracename not in self.data:
self.data[tracename] = {}