summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2018-10-13 10:17:10 -0400
committerNed Batchelder <ned@nedbatchelder.com>2018-10-13 10:17:10 -0400
commit3569f921992e10036281d469f22cf4a2e06a6c45 (patch)
tree1cf1cda352dbf3df1935f8c2156d09133abc5531
parent8f41c9714de5a75e031b4ea8a744f9d7860e8c05 (diff)
downloadpython-coveragepy-git-3569f921992e10036281d469f22cf4a2e06a6c45.tar.gz
Fewer conditionals for debug output
-rw-r--r--coverage/data.py25
-rw-r--r--coverage/debug.py6
-rw-r--r--coverage/sqldata.py22
3 files changed, 30 insertions, 23 deletions
diff --git a/coverage/data.py b/coverage/data.py
index e6d56d84..4a996e68 100644
--- a/coverage/data.py
+++ b/coverage/data.py
@@ -15,6 +15,7 @@ import socket
from coverage import env
from coverage.backward import iitems, string_class
+from coverage.debug import NoDebugging
from coverage.files import PathAliases
from coverage.misc import CoverageException, file_be_gone, isolate_module
@@ -133,7 +134,7 @@ class CoverageJsonData(object):
"""
self._warn = warn
- self._debug = debug
+ self._debug = debug or NoDebugging()
self.filename = os.path.abspath(basename or ".coverage")
self.suffix = suffix
@@ -293,7 +294,7 @@ class CoverageJsonData(object):
def _read_file(self, filename):
"""Read the coverage data from `filename` into this object."""
- if self._debug and self._debug.should('dataio'):
+ if self._debug.should('dataio'):
self._debug.write("Reading data from %r" % (filename,))
try:
with self._open_for_reading(filename) as f:
@@ -338,7 +339,7 @@ class CoverageJsonData(object):
{ filename: { lineno: None, ... }, ...}
"""
- if self._debug and self._debug.should('dataop'):
+ if self._debug.should('dataop'):
self._debug.write("Adding lines: %d files, %d lines total" % (
len(line_data), sum(len(lines) for lines in line_data.values())
))
@@ -364,7 +365,7 @@ class CoverageJsonData(object):
{ filename: { (l1,l2): None, ... }, ...}
"""
- if self._debug and self._debug.should('dataop'):
+ if self._debug.should('dataop'):
self._debug.write("Adding arcs: %d files, %d arcs total" % (
len(arc_data), sum(len(arcs) for arcs in arc_data.values())
))
@@ -388,7 +389,7 @@ class CoverageJsonData(object):
`file_tracers` is { filename: plugin_name, ... }
"""
- if self._debug and self._debug.should('dataop'):
+ if self._debug.should('dataop'):
self._debug.write("Adding file tracers: %d files" % (len(file_tracers),))
existing_files = self._arcs or self._lines or {}
@@ -416,7 +417,7 @@ class CoverageJsonData(object):
but repeated keywords overwrite each other.
"""
- if self._debug and self._debug.should('dataop'):
+ if self._debug.should('dataop'):
self._debug.write("Adding run info: %r" % (kwargs,))
if not self._runs:
self._runs = [{}]
@@ -429,7 +430,7 @@ class CoverageJsonData(object):
`plugin_name` is the name of the plugin resposible for this file. It is used
to associate the right filereporter, etc.
"""
- if self._debug and self._debug.should('dataop'):
+ if self._debug.should('dataop'):
self._debug.write("Touching %r" % (filename,))
if not self._has_arcs() and not self._has_lines():
raise CoverageException("Can't touch files in an empty CoverageData")
@@ -489,7 +490,7 @@ class CoverageJsonData(object):
def _write_file(self, filename):
"""Write the coverage data to `filename`."""
- if self._debug and self._debug.should('dataio'):
+ if self._debug.should('dataio'):
self._debug.write("Writing data to %r" % (filename,))
with open(filename, 'w') as fdata:
self._write_fileobj(fdata)
@@ -507,7 +508,7 @@ class CoverageJsonData(object):
self._runs = []
self._validate()
- if self._debug and self._debug.should('dataio'):
+ if self._debug.should('dataio'):
self._debug.write("Erasing data file %r" % (self.filename,))
file_be_gone(self.filename)
if parallel:
@@ -515,7 +516,7 @@ class CoverageJsonData(object):
localdot = local + '.*'
pattern = os.path.join(os.path.abspath(data_dir), localdot)
for filename in glob.glob(pattern):
- if self._debug and self._debug.should('dataio'):
+ if self._debug.should('dataio'):
self._debug.write("Erasing parallel data file %r" % (filename,))
file_be_gone(filename)
@@ -727,7 +728,7 @@ def combine_parallel_data(data, aliases=None, data_paths=None, strict=False):
files_combined = 0
for f in files_to_combine:
- if data._debug and data._debug.should('dataio'):
+ if data._debug.should('dataio'):
data._debug.write("Combining data file %r" % (f,))
try:
new_data = CoverageData(f, debug=data._debug)
@@ -740,7 +741,7 @@ def combine_parallel_data(data, aliases=None, data_paths=None, strict=False):
else:
data.update(new_data, aliases=aliases)
files_combined += 1
- if data._debug and data._debug.should('dataio'):
+ if data._debug.should('dataio'):
data._debug.write("Deleting combined data file %r" % (f,))
file_be_gone(f)
diff --git a/coverage/debug.py b/coverage/debug.py
index ce22d725..2c5c6aaf 100644
--- a/coverage/debug.py
+++ b/coverage/debug.py
@@ -91,6 +91,12 @@ class DebugControlString(DebugControl):
return self.raw_output.getvalue()
+class NoDebugging(object):
+ """A replacement for DebugControl that will never try to do anything."""
+ def should(self, option):
+ return False
+
+
def info_header(label):
"""Make a nice header string."""
return "--{0:-<60s}".format(" "+label+" ")
diff --git a/coverage/sqldata.py b/coverage/sqldata.py
index 48d2d670..6c12d681 100644
--- a/coverage/sqldata.py
+++ b/coverage/sqldata.py
@@ -19,7 +19,7 @@ import sys
from coverage.backward import iitems
from coverage.data import filename_suffix
-from coverage.debug import SimpleReprMixin
+from coverage.debug import NoDebugging, SimpleReprMixin
from coverage.files import PathAliases
from coverage.misc import CoverageException, file_be_gone
@@ -80,7 +80,7 @@ class CoverageSqliteData(SimpleReprMixin):
self._basename = os.path.abspath(basename or ".coverage")
self._suffix = suffix
self._warn = warn
- self._debug = debug
+ self._debug = debug or NoDebugging()
self._choose_filename()
self._file_map = {}
@@ -110,7 +110,7 @@ class CoverageSqliteData(SimpleReprMixin):
self._current_context_id = None
def _create_db(self):
- if self._debug and self._debug.should('dataio'):
+ if self._debug.should('dataio'):
self._debug.write("Creating data file {!r}".format(self.filename))
self._db = Sqlite(self.filename, self._debug)
with self._db:
@@ -125,7 +125,7 @@ class CoverageSqliteData(SimpleReprMixin):
)
def _open_db(self):
- if self._debug and self._debug.should('dataio'):
+ if self._debug.should('dataio'):
self._debug.write("Opening data file {!r}".format(self.filename))
self._db = Sqlite(self.filename, self._debug)
with self._db:
@@ -203,7 +203,7 @@ class CoverageSqliteData(SimpleReprMixin):
def set_context(self, context):
"""Set the current context for future `add_lines` etc."""
- if self._debug and self._debug.should('dataop'):
+ if self._debug.should('dataop'):
self._debug.write("Setting context: %r" % (context,))
self._start_using()
context = context or ""
@@ -223,7 +223,7 @@ class CoverageSqliteData(SimpleReprMixin):
{ filename: { lineno: None, ... }, ...}
"""
- if self._debug and self._debug.should('dataop'):
+ if self._debug.should('dataop'):
self._debug.write("Adding lines: %d files, %d lines total" % (
len(line_data), sum(len(lines) for lines in line_data.values())
))
@@ -248,7 +248,7 @@ class CoverageSqliteData(SimpleReprMixin):
{ filename: { (l1,l2): None, ... }, ...}
"""
- if self._debug and self._debug.should('dataop'):
+ if self._debug.should('dataop'):
self._debug.write("Adding arcs: %d files, %d arcs total" % (
len(arc_data), sum(len(arcs) for arcs in arc_data.values())
))
@@ -312,7 +312,7 @@ class CoverageSqliteData(SimpleReprMixin):
to associate the right filereporter, etc.
"""
self._start_using()
- if self._debug and self._debug.should('dataop'):
+ if self._debug.should('dataop'):
self._debug.write("Touching %r" % (filename,))
if not self._has_arcs and not self._has_lines:
raise CoverageException("Can't touch files in an empty CoverageSqliteData")
@@ -384,7 +384,7 @@ class CoverageSqliteData(SimpleReprMixin):
"""
self._reset()
- if self._debug and self._debug.should('dataio'):
+ if self._debug.should('dataio'):
self._debug.write("Erasing data file {!r}".format(self.filename))
file_be_gone(self.filename)
if parallel:
@@ -392,7 +392,7 @@ class CoverageSqliteData(SimpleReprMixin):
localdot = local + '.*'
pattern = os.path.join(os.path.abspath(data_dir), localdot)
for filename in glob.glob(pattern):
- if self._debug and self._debug.should('dataio'):
+ if self._debug.should('dataio'):
self._debug.write("Erasing parallel data file {!r}".format(filename))
file_be_gone(filename)
@@ -488,7 +488,7 @@ class CoverageSqliteData(SimpleReprMixin):
class Sqlite(SimpleReprMixin):
def __init__(self, filename, debug):
- self.debug = debug if (debug and debug.should('sql')) else None
+ self.debug = debug if debug.should('sql') else None
self.filename = filename
self.nest = 0
if self.debug: