diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2021-10-09 16:41:59 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2021-10-09 16:41:59 -0400 |
commit | 498b1484e466588a22cef520095f1fd0ed8b8ff8 (patch) | |
tree | 84979ae5f419d8632ba898d8464dc142778e9f1c /coverage/sqldata.py | |
parent | 4d55ada1bdca638b0fd12e887fb0faaa574dee8d (diff) | |
download | python-coveragepy-git-498b1484e466588a22cef520095f1fd0ed8b8ff8.tar.gz |
fix: contexts_by_lineno now returns a true dict
Diffstat (limited to 'coverage/sqldata.py')
-rw-r--r-- | coverage/sqldata.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/coverage/sqldata.py b/coverage/sqldata.py index 412a9eb7..108a25ef 100644 --- a/coverage/sqldata.py +++ b/coverage/sqldata.py @@ -942,12 +942,13 @@ class CoverageData(SimpleReprMixin): .. versionadded:: 5.0 """ - lineno_contexts_map = collections.defaultdict(list) self._start_using() with self._connect() as con: file_id = self._file_id(filename) if file_id is None: - return lineno_contexts_map + return {} + + lineno_contexts_map = collections.defaultdict(set) if self.has_arcs(): query = ( "select arc.fromno, arc.tono, context.context " + @@ -960,10 +961,10 @@ class CoverageData(SimpleReprMixin): query += " and arc.context_id in (" + ids_array + ")" data += self._query_context_ids for fromno, tono, context in con.execute(query, data): - if context not in lineno_contexts_map[fromno]: - lineno_contexts_map[fromno].append(context) - if context not in lineno_contexts_map[tono]: - lineno_contexts_map[tono].append(context) + if fromno > 0: + lineno_contexts_map[fromno].add(context) + if tono > 0: + lineno_contexts_map[tono].add(context) else: query = ( "select l.numbits, c.context from line_bits l, context c " + @@ -977,8 +978,9 @@ class CoverageData(SimpleReprMixin): data += self._query_context_ids for numbits, context in con.execute(query, data): for lineno in numbits_to_nums(numbits): - lineno_contexts_map[lineno].append(context) - return lineno_contexts_map + lineno_contexts_map[lineno].add(context) + + return {lineno: list(contexts) for lineno, contexts in lineno_contexts_map.items()} @classmethod def sys_info(cls): |