summaryrefslogtreecommitdiff
path: root/coverage/sqldata.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2018-08-04 10:03:47 -0400
committerNed Batchelder <ned@nedbatchelder.com>2018-08-04 10:03:47 -0400
commitf1561b04f58fdd04b86d2ed0dc858a1222752b02 (patch)
treeac0a2aa1d1a1b19582bea26d1858e3fb6f522d0f /coverage/sqldata.py
parent2f0d57856550ef7ad248e4e6127700bdabb91e7d (diff)
downloadpython-coveragepy-git-f1561b04f58fdd04b86d2ed0dc858a1222752b02.tar.gz
Improved debugging
Diffstat (limited to 'coverage/sqldata.py')
-rw-r--r--coverage/sqldata.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/coverage/sqldata.py b/coverage/sqldata.py
index cddece31..296e353e 100644
--- a/coverage/sqldata.py
+++ b/coverage/sqldata.py
@@ -7,6 +7,7 @@ import os
import sqlite3
from coverage.backward import iitems
+from coverage.debug import SimpleRepr
from coverage.misc import CoverageException, file_be_gone
@@ -47,7 +48,7 @@ create table arc (
# (-1065448850,)
APP_ID = -1065448850
-class CoverageSqliteData(object):
+class CoverageSqliteData(SimpleRepr):
def __init__(self, basename=None, warn=None, debug=None):
self.filename = os.path.abspath(basename or ".coverage")
self._warn = warn
@@ -125,6 +126,10 @@ class CoverageSqliteData(object):
{ filename: { lineno: None, ... }, ...}
"""
+ if self._debug and 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())
+ ))
self._start_writing()
self._choose_lines_or_arcs(lines=True)
with self._connect() as con:
@@ -144,6 +149,10 @@ class CoverageSqliteData(object):
{ filename: { (l1,l2): None, ... }, ...}
"""
+ if self._debug and 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())
+ ))
self._start_writing()
self._choose_lines_or_arcs(arcs=True)
with self._connect() as con:
@@ -242,7 +251,7 @@ class CoverageSqliteData(object):
return [pair for pair in con.execute("select fromno, tono from arc where file_id = ?", (file_id,))]
-class Sqlite(object):
+class Sqlite(SimpleRepr):
def __init__(self, filename, debug):
self.debug = debug if (debug and debug.should('sql')) else None
if self.debug:
@@ -250,9 +259,9 @@ class Sqlite(object):
self.con = sqlite3.connect(filename)
# This pragma makes writing faster. It disables rollbacks, but we never need them.
- self.con.execute("pragma journal_mode=off")
+ self.execute("pragma journal_mode=off")
# This pragma makes writing faster.
- self.con.execute("pragma synchronous=off")
+ self.execute("pragma synchronous=off")
def close(self):
self.con.close()
@@ -272,5 +281,5 @@ class Sqlite(object):
def executemany(self, sql, data):
if self.debug:
- self.debug.write("Executing many {!r}".format(sql))
+ self.debug.write("Executing many {!r} with {} rows".format(sql, len(data)))
return self.con.executemany(sql, data)