summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mailman/utilities/queries.py10
-rw-r--r--src/mailman/utilities/tests/test_queries.py4
2 files changed, 10 insertions, 4 deletions
diff --git a/src/mailman/utilities/queries.py b/src/mailman/utilities/queries.py
index fa8cb04aa..1a35e35fe 100644
--- a/src/mailman/utilities/queries.py
+++ b/src/mailman/utilities/queries.py
@@ -35,7 +35,6 @@ class QuerySequence(Sequence):
def __init__(self, query=None):
super().__init__()
self._query = query
- self._cached_results = None
def __len__(self):
return (0 if self._query is None else self._query.count())
@@ -43,6 +42,9 @@ class QuerySequence(Sequence):
def __getitem__(self, index):
if self._query is None:
raise IndexError('index out of range')
- if self._cached_results is None:
- self._cached_results = list(self._query)
- return self._cached_results[index]
+ return self._query[index]
+
+ def __iter__(self):
+ if self._query is None:
+ return []
+ yield from self._query
diff --git a/src/mailman/utilities/tests/test_queries.py b/src/mailman/utilities/tests/test_queries.py
index 6281a9f9b..39ab7de61 100644
--- a/src/mailman/utilities/tests/test_queries.py
+++ b/src/mailman/utilities/tests/test_queries.py
@@ -33,3 +33,7 @@ class TestQueries(unittest.TestCase):
def test_index_error(self):
query = QuerySequence(None)
self.assertRaises(IndexError, getitem, query, 1)
+
+ def test_iterate_with_none(self):
+ query = QuerySequence(None)
+ self.assertEqual(list(query), [])