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 | 0a3a4218d1555d33f7c0e5b3db2ed561ba9e29b3 (patch) | |
tree | 352f243dbd0c8e6888835b00e46e20c7f19cceba | |
parent | 5aa8f70d4ee8b3d40d5caf69c42c67d4fd4f0118 (diff) | |
download | python-coveragepy-0a3a4218d1555d33f7c0e5b3db2ed561ba9e29b3.tar.gz |
Now I can use collections.defaultdict
-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 010cd73..6332f63 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 bfd9e52..e6475af 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 d4d82f1..f3ca53a 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. |