From ec87d30b7298ab7eca2f14160a583509d17e783f Mon Sep 17 00:00:00 2001 From: Charles Leifer Date: Wed, 17 Apr 2024 10:27:42 -0500 Subject: [PATCH] Better fix for #2871, fixes #2872. --- peewee.py | 5 +---- tests/regressions.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/peewee.py b/peewee.py index 5321fec23..08d1f69ee 100644 --- a/peewee.py +++ b/peewee.py @@ -2095,7 +2095,7 @@ def iterator(self, database=None): return iter(self.execute(database).iterator()) def _ensure_execution(self): - if not self._cursor_wrapper: + if self._cursor_wrapper is None: if not self._database: raise ValueError('Query has not been executed.') self.execute() @@ -4572,9 +4572,6 @@ def __len__(self): self.fill_cache() return self.count - def __bool__(self): - return self.populated - def initialize(self): pass diff --git a/tests/regressions.py b/tests/regressions.py index a47d8a20e..8df157b51 100644 --- a/tests/regressions.py +++ b/tests/regressions.py @@ -1801,3 +1801,13 @@ def run(n): for i in (0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.5)] for t in threads: t.start() for t in threads: t.join() + + +class TestQueryCountList(ModelTestCase): + requires = [User] + + def test_iteration_single_query(self): + with self.assertQueryCount(1): + list(User.select()) + with self.assertQueryCount(1): + self.assertEqual(User.select().count(), 0)