From: Mike Bayer Date: Thu, 20 Sep 2012 16:03:24 +0000 (-0400) Subject: - repair bool() for instance level event listener where events are classlevel, contin... X-Git-Tag: rel_0_8_0b1~151 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5accce97bae1b35eeb1eb26f8281a98c58d2cef;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - repair bool() for instance level event listener where events are classlevel, continuing [ticket:2516] --- diff --git a/lib/sqlalchemy/event.py b/lib/sqlalchemy/event.py index ee4c0ad32c..633cb96f86 100644 --- a/lib/sqlalchemy/event.py +++ b/lib/sqlalchemy/event.py @@ -352,7 +352,7 @@ class _EmptyListener(object): return iter(self.parent_listeners) def __nonzero__(self): - return False + return bool(self.parent_listeners) class _CompoundListener(object): _exec_once = False diff --git a/test/base/test_events.py b/test/base/test_events.py index 7ae05e6c38..657ddc1be0 100644 --- a/test/base/test_events.py +++ b/test/base/test_events.py @@ -50,6 +50,13 @@ class EventsTest(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