From 088cf5e622e8e60136394b4759d31dd774c22cc7 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Thu, 20 Sep 2012 12:05:16 -0400 Subject: [PATCH] - repair bool() for instance level event listener where events are classlevel, continuing [ticket:2516], for some reason the impl was different here than that of 0.8 --- lib/sqlalchemy/event.py | 2 +- test/base/test_events.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/sqlalchemy/event.py b/lib/sqlalchemy/event.py index 775cd9dc86..f5ca90db55 100644 --- a/lib/sqlalchemy/event.py +++ b/lib/sqlalchemy/event.py @@ -328,7 +328,7 @@ class _EmptyListener(object): return (self.parent_listeners)[index] def __nonzero__(self): - return bool(self.listeners) + return bool(self.parent_listeners) class _ListenerCollection(object): diff --git a/test/base/test_events.py b/test/base/test_events.py index 57c06c328f..9d1fa21009 100644 --- a/test/base/test_events.py +++ b/test/base/test_events.py @@ -50,6 +50,13 @@ class TestEvents(fixtures.TestBase): eq_(len(self.Target().dispatch.event_two), 0) eq_(len(t1.dispatch.event_two), 0) + def test_bool_clslevel(self): + def listen_one(x, y): + pass + event.listen(self.Target, "event_one", listen_one) + t = self.Target() + assert t.dispatch.event_one + def test_register_class_instance(self): def listen_one(x, y): pass -- 2.47.2