Re: [Sqlalchemy-tickets] [sqlalchemy] #2832: event.remove fails when used for method in 0.9
Brought to you by:
zzzeek
|
From: sqlalchemy <mi...@zz...> - 2013-10-01 15:54:30
|
#2832: event.remove fails when used for method in 0.9
---------------------------+-------------------------------
Reporter: ods | Owner: zzzeek
Type: defect | Status: new
Priority: high | Milestone: 0.9.0
Component: engine | Severity: major - 1-3 hours
Resolution: | Keywords:
Progress State: in queue |
---------------------------+-------------------------------
Changes (by zzzeek):
* priority: medium => high
* status_field: awaiting triage => in queue
* component: (none) => engine
* severity: no triage selected yet => major - 1-3 hours
* milestone: => 0.9.0
Comment:
I think I might have known that. will have to see if the id() logic can
be more intelligent
{{{
#!diff
diff --git a/test/base/test_events.py b/test/base/test_events.py
index d2bfb09..57da149 100644
--- a/test/base/test_events.py
+++ b/test/base/test_events.py
@@ -966,6 +966,27 @@ class RemovalTest(fixtures.TestBase):
eq_(m1.mock_calls, [call("x")])
+ def test_instance(self):
+ Target = self._fixture()
+
+ m1 = Mock()
+ class Foo(object):
+ def evt(self, arg):
+ m1(arg)
+
+ f1 = Foo()
+
+ event.listen(Target, "event_one", f1.evt)
+
+ t1 = Target()
+ t1.dispatch.event_one("x")
+
+ event.remove(Target, "event_one", f1.evt)
+
+ t1.dispatch.event_one("y")
+
+ eq_(m1.mock_calls, [call("x")])
+
def test_propagate(self):
Target = self._fixture()
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2832#comment:1>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|