From: Victor Stinner <victor.stinner@gmail.com> Date: Mon, 10 Mar 2014 10:05:07 +0000 (+0100) Subject: tracemalloc: filter_traces() raises a TypeError if filters is not an iterable X-Git-Tag: v3.4.1rc1~233^2~83 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8ce8ff9ac77bdf202bf39bb98203d26cd40d8e04;p=python tracemalloc: filter_traces() raises a TypeError if filters is not an iterable --- diff --git a/Lib/test/test_tracemalloc.py b/Lib/test/test_tracemalloc.py index d1e5aef5c8..c953885fc5 100644 --- a/Lib/test/test_tracemalloc.py +++ b/Lib/test/test_tracemalloc.py @@ -346,6 +346,8 @@ class TestSnapshot(unittest.TestCase): self.assertIsNot(snapshot5.traces, snapshot.traces) self.assertEqual(snapshot5.traces, snapshot.traces) + self.assertRaises(TypeError, snapshot.filter_traces, filter1) + def test_snapshot_group_by_line(self): snapshot, snapshot2 = create_snapshots() tb_0 = traceback_lineno('<unknown>', 0) diff --git a/Lib/tracemalloc.py b/Lib/tracemalloc.py index f117127339..adedfc5fb4 100644 --- a/Lib/tracemalloc.py +++ b/Lib/tracemalloc.py @@ -1,4 +1,4 @@ -from collections import Sequence +from collections import Sequence, Iterable from functools import total_ordering import fnmatch import linecache @@ -382,6 +382,9 @@ class Snapshot: is a list of Filter instances. If filters is an empty list, return a new Snapshot instance with a copy of the traces. """ + if not isinstance(filters, Iterable): + raise TypeError("filters must be a list of filters, not %s" + % type(filters).__name__) if filters: include_filters = [] exclude_filters = []