From e60529da797491e9e88e9fcc581334ad3a09bcc2 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 25 Feb 2014 16:55:42 -0500 Subject: - Fixed bug where events set to listen at the class level (e.g. on the :class:`.Mapper` or :class:`.ClassManager` level, as opposed to on an individual mapped class, and also on :class:`.Connection`) that also made use of internal argument conversion (which is most within those categories) would fail to be removable. fixes #2973 --- test/base/test_events.py | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) (limited to 'test/base') diff --git a/test/base/test_events.py b/test/base/test_events.py index e985f8d5b..8d4728a9f 100644 --- a/test/base/test_events.py +++ b/test/base/test_events.py @@ -669,6 +669,39 @@ class ListenOverrideTest(fixtures.TestBase): [call(5, 7), call(10, 5)] ) + def test_remove_clslevel(self): + listen_one = Mock() + event.listen(self.Target, "event_one", listen_one, add=True) + t1 = self.Target() + t1.dispatch.event_one(5, 7) + eq_( + listen_one.mock_calls, + [call(12)] + ) + event.remove(self.Target, "event_one", listen_one) + t1.dispatch.event_one(10, 5) + eq_( + listen_one.mock_calls, + [call(12)] + ) + + def test_remove_instancelevel(self): + listen_one = Mock() + t1 = self.Target() + event.listen(t1, "event_one", listen_one, add=True) + t1.dispatch.event_one(5, 7) + eq_( + listen_one.mock_calls, + [call(12)] + ) + event.remove(t1, "event_one", listen_one) + t1.dispatch.event_one(10, 5) + eq_( + listen_one.mock_calls, + [call(12)] + ) + + class PropagateTest(fixtures.TestBase): def setUp(self): class TargetEvents(event.Events): @@ -1087,8 +1120,3 @@ class RemovalTest(fixtures.TestBase): ) event.remove(t1, "event_three", m1) - - - - - -- cgit v1.2.1