summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2018-08-14 20:38:39 -0400
committerNed Batchelder <ned@nedbatchelder.com>2018-08-14 20:38:39 -0400
commit067d0a60384b5f12cfee622381cfb5905efb8e13 (patch)
tree68327a81460c1751ceeb6286967d524b75dd261f
parentda37af9a65b144ce6b1f26430bcbc9786e055f8b (diff)
downloadpython-coveragepy-git-067d0a60384b5f12cfee622381cfb5905efb8e13.tar.gz
Use pid-random suffixes for SQL files
-rw-r--r--coverage/data.py21
-rw-r--r--coverage/sqldata.py4
2 files changed, 16 insertions, 9 deletions
diff --git a/coverage/data.py b/coverage/data.py
index 5e85fc10..aa23e7d4 100644
--- a/coverage/data.py
+++ b/coverage/data.py
@@ -21,6 +21,17 @@ from coverage.misc import CoverageException, file_be_gone, isolate_module
os = isolate_module(os)
+def filename_suffix(suffix):
+ if suffix is True:
+ # If data_suffix was a simple true value, then make a suffix with
+ # plenty of distinguishing information. We do this here in
+ # `save()` at the last minute so that the pid will be correct even
+ # if the process forks.
+ dice = random.Random(os.urandom(8)).randint(0, 999999)
+ suffix = "%s.%s.%06d" % (socket.gethostname(), os.getpid(), dice)
+ return suffix
+
+
class CoverageJsonData(object):
"""Manages collected coverage data, including file storage.
@@ -444,15 +455,7 @@ class CoverageJsonData(object):
"""
filename = self.filename
- suffix = self.suffix
- if suffix is True:
- # If data_suffix was a simple true value, then make a suffix with
- # plenty of distinguishing information. We do this here in
- # `save()` at the last minute so that the pid will be correct even
- # if the process forks.
- dice = random.Random(os.urandom(8)).randint(0, 999999)
- suffix = "%s.%s.%06d" % (socket.gethostname(), os.getpid(), dice)
-
+ suffix = filename_suffix(self.suffix)
if suffix:
filename += "." + suffix
self._write_file(filename)
diff --git a/coverage/sqldata.py b/coverage/sqldata.py
index 5ae5e64d..f36a9385 100644
--- a/coverage/sqldata.py
+++ b/coverage/sqldata.py
@@ -13,6 +13,7 @@ import sqlite3
import struct
from coverage.backward import iitems
+from coverage.data import filename_suffix
from coverage.debug import SimpleRepr
from coverage.files import PathAliases
from coverage.misc import CoverageException, file_be_gone
@@ -62,6 +63,9 @@ def signed_to_unsigned(val):
class CoverageSqliteData(SimpleRepr):
def __init__(self, basename=None, suffix=None, warn=None, debug=None):
self.filename = os.path.abspath(basename or ".coverage")
+ suffix = filename_suffix(suffix)
+ if suffix:
+ self.filename += "." + suffix
self._warn = warn
self._debug = debug