diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2019-07-12 16:13:37 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2019-07-12 16:13:37 -0400 |
commit | 48dc3a8936da7aa48ed88cc42265343a0d5f3d8a (patch) | |
tree | 23faf360100836b355ae7d04589f9de5a74231b1 /coverage/sqldata.py | |
parent | 04a675ab3b115cd7b6d197341cb4a78087534773 (diff) | |
download | python-coveragepy-git-48dc3a8936da7aa48ed88cc42265343a0d5f3d8a.tar.gz |
Diffstat (limited to 'coverage/sqldata.py')
-rw-r--r-- | coverage/sqldata.py | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/coverage/sqldata.py b/coverage/sqldata.py index 998abd64..f67b1b85 100644 --- a/coverage/sqldata.py +++ b/coverage/sqldata.py @@ -147,7 +147,8 @@ class CoverageData(SimpleReprMixin): """ - def __init__(self, basename=None, suffix=None, warn=None, debug=None): + def __init__(self, mode, basename=None, suffix=None, warn=None, debug=None): + self._mode = mode self._basename = os.path.abspath(basename or ".coverage") self._suffix = suffix self._warn = warn @@ -159,9 +160,6 @@ class CoverageData(SimpleReprMixin): self._dbs = {} self._pid = os.getpid() - # Are we in sync with the data file? - self._have_used = False - self._has_lines = False self._has_arcs = False @@ -171,10 +169,13 @@ class CoverageData(SimpleReprMixin): self._query_context_ids = None def _choose_filename(self): - self._filename = self._basename - suffix = filename_suffix(self._suffix) - if suffix: - self._filename += "." + suffix + if "m" in self._mode: + self._filename = ":memory:" + else: + self._filename = self._basename + suffix = filename_suffix(self._suffix) + if suffix: + self._filename += "." + suffix def _reset(self): if self._dbs: @@ -182,7 +183,6 @@ class CoverageData(SimpleReprMixin): db.close() self._dbs = {} self._file_map = {} - self._have_used = False self._current_context_id = None def _create_db(self): @@ -233,6 +233,8 @@ class CoverageData(SimpleReprMixin): if os.path.exists(self._filename): self._open_db() else: + if 'r' in self._mode: + raise CoverageException("Data file {} can't be opened for reading".format(self._filename)) self._create_db() return self._dbs[get_thread_id()] @@ -581,10 +583,9 @@ class CoverageData(SimpleReprMixin): file_be_gone(filename) def read(self): - with self._connect(): # TODO: doesn't look right - self._have_used = True + assert "r" in self._mode # TODO: get rid of this. - def write(self): + def flush(self): """Write the collected coverage data to a file.""" pass @@ -594,9 +595,8 @@ class CoverageData(SimpleReprMixin): self._reset() self._choose_filename() self._pid = os.getpid() - if not self._have_used: + if "w" in self._mode and "r" not in self._mode: self.erase() - self._have_used = True def has_arcs(self): return bool(self._has_arcs) |