diff options
author | Stephan Richter <stephan.richter@gmail.com> | 2019-01-23 16:50:12 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2019-06-10 17:15:32 -0400 |
commit | 12a23b1c67d93a2123c0c3754b7e00f08efed89b (patch) | |
tree | 7541922e7ad06813f31556388df3b03f50c2b0bc /coverage/sqldata.py | |
parent | d96272d040fa100297e56c6aca4f7b0ad004a5d6 (diff) | |
download | python-coveragepy-git-12a23b1c67d93a2123c0c3754b7e00f08efed89b.tar.gz |
Sigh, sqlite3 does not support proper array serialization.
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 ff41a563..a10d5458 100644 --- a/coverage/sqldata.py +++ b/coverage/sqldata.py @@ -563,10 +563,10 @@ class CoverageSqliteData(SimpleReprMixin): with self._connect() as con: # Context entries can be globs, so convert '*' with '%'. context_selectors = [context.replace('*', '%') for context in contexts] - context_clause = ' or '.join(['contenxt like ?']*len(contexts)) - con.execute( + context_clause = ' or '.join(['context like ?']*len(contexts)) + cur = con.execute( "select id from context where " + context_clause, context_selectors) - return [row[0] for row in con.fetchall()] + return [row[0] for row in cur.fetchall()] elif self._query_contexts is not None: return self._query_context_ids return None @@ -574,7 +574,7 @@ class CoverageSqliteData(SimpleReprMixin): def lines(self, filename, contexts=None): self._start_using() if self.has_arcs(): - arcs = self.arcs(filename, context=context) + arcs = self.arcs(filename, contexts=contexts) if arcs is not None: all_lines = itertools.chain.from_iterable(arcs) return list(set(l for l in all_lines if l > 0)) @@ -588,8 +588,9 @@ class CoverageSqliteData(SimpleReprMixin): data = [file_id] context_ids = self._get_query_context_ids(contexts) if context_ids is not None: - query += " and context_id IN ?" - data += [context_ids] + ids_array = ', '.join('?'*len(context_ids)) + query += " and context_id in (" + ids_array + ")" + data += context_ids linenos = con.execute(query, data) return [lineno for lineno, in linenos] @@ -604,8 +605,9 @@ class CoverageSqliteData(SimpleReprMixin): data = [file_id] context_ids = self._get_query_context_ids(contexts) if context_ids is not None: - query += " and context_id IN ?" - data += [context_ids] + ids_array = ', '.join('?'*len(context_ids)) + query += " and context_id in (" + ids_array + ")" + data += context_ids arcs = con.execute(query, data) return list(arcs) |