diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2013-10-20 07:38:41 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2013-10-20 07:38:41 -0400 |
commit | 35cfd9334d381d06e8a5364a2eaa4b7b8d7b0bbc (patch) | |
tree | eea374d9c83200d5747872906f100b8756342c6c | |
parent | bad63e02b113626a048ea5eb253293c61902e291 (diff) | |
download | python-coveragepy-git-35cfd9334d381d06e8a5364a2eaa4b7b8d7b0bbc.tar.gz |
Now I can use collections.defaultdict
--HG--
branch : 4.0
-rw-r--r-- | TODO.txt | 4 | ||||
-rw-r--r-- | coverage/parser.py | 6 | ||||
-rw-r--r-- | coverage/results.py | 5 | ||||
-rw-r--r-- | tests/coveragetest.py | 9 |
4 files changed, 9 insertions, 15 deletions
@@ -16,10 +16,10 @@ Key: + set, sorted, reversed, rpartition + generator expressions + decorators - - collections.defaultdict + + collections.defaultdict + .startswith((,)) - "with" statements - + - .format() ? + Remove code only run on <2.6 - Change data file to json diff --git a/coverage/parser.py b/coverage/parser.py index 010cd73a..6332f637 100644 --- a/coverage/parser.py +++ b/coverage/parser.py @@ -1,6 +1,6 @@ """Code parsing for Coverage.""" -import dis, re, sys, token, tokenize +import collections, dis, re, sys, token, tokenize from coverage.backward import StringIO from coverage.backward import open_source, range # pylint: disable=W0622 @@ -242,7 +242,7 @@ class CodeParser(object): """ excluded_lines = self.first_lines(self.excluded) - exit_counts = {} + exit_counts = collections.defaultdict(int) for l1, l2 in self.arcs(): if l1 < 0: # Don't ever report -1 as a line number @@ -253,8 +253,6 @@ class CodeParser(object): if l2 in excluded_lines: # Arcs to excluded lines shouldn't count. continue - if l1 not in exit_counts: - exit_counts[l1] = 0 exit_counts[l1] += 1 # Class definitions have one extra exit, so remove one for each: diff --git a/coverage/results.py b/coverage/results.py index bfd9e52e..e6475afb 100644 --- a/coverage/results.py +++ b/coverage/results.py @@ -1,5 +1,6 @@ """Results of coverage measurement.""" +import collections import os from coverage.backward import iitems @@ -158,11 +159,9 @@ class Analysis(object): """ missing = self.arcs_missing() branch_lines = set(self.branch_lines()) - mba = {} + mba = collections.defaultdict(list) for l1, l2 in missing: if l1 in branch_lines: - if l1 not in mba: - mba[l1] = [] mba[l1].append(l2) return mba diff --git a/tests/coveragetest.py b/tests/coveragetest.py index d4d82f12..f3ca53a1 100644 --- a/tests/coveragetest.py +++ b/tests/coveragetest.py @@ -1,7 +1,7 @@ """Base test case class for coverage testing.""" import glob, imp, os, random, shlex, shutil, sys, tempfile, textwrap -import atexit +import atexit, collections import coverage from coverage.backward import StringIO, to_bytes @@ -506,7 +506,7 @@ class CoverageTest(TestCase): self.test_method_made_any_files = False # Map from class to info about how it ran. - class_behaviors = {} + class_behaviors = collections.defaultdict(ClassBehavior) @classmethod def report_on_class_behavior(cls): @@ -536,10 +536,7 @@ class CoverageTest(TestCase): def class_behavior(self): """Get the ClassBehavior instance for this test.""" - cls = self.__class__ - if cls not in self.class_behaviors: - self.class_behaviors[cls] = self.ClassBehavior() - return self.class_behaviors[cls] + return self.class_behaviors[self.__class__] # When the process ends, find out about bad classes. |