diff options
| -rw-r--r-- | debug_toolbar/utils/tracking/__init__.py | 3 | ||||
| -rw-r--r-- | tests/tests.py | 34 |
2 files changed, 18 insertions, 19 deletions
diff --git a/debug_toolbar/utils/tracking/__init__.py b/debug_toolbar/utils/tracking/__init__.py index 6d4b0e3..766c248 100644 --- a/debug_toolbar/utils/tracking/__init__.py +++ b/debug_toolbar/utils/tracking/__init__.py @@ -51,8 +51,7 @@ def _replace_function(func, wrapped): module = import_module(func.__module__) setattr(module, func.__name__, wrapped) elif getattr(func, 'im_self', None): - # TODO: classmethods - raise NotImplementedError + setattr(func.im_self, func.__name__, classmethod(wrapped)) elif hasattr(func, 'im_class'): # for unbound methods setattr(func.im_class, func.__name__, wrapped) diff --git a/tests/tests.py b/tests/tests.py index c599b6b..5a05050 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -315,23 +315,23 @@ class TrackingTestCase(BaseTestCase): self.assertTrue('foo' in foo['kwargs']) self.assertEquals(foo['kwargs']['foo'], 'bar') - # callbacks['before'] = {} - # - # @pre_dispatch(TrackingTestCase.class_method) - # def test(**kwargs): - # foo.update(kwargs) - # - # self.assertTrue(hasattr(TrackingTestCase.class_method, '__wrapped__')) - # self.assertEquals(len(callbacks['before']), 1) - # - # TrackingTestCase.class_method() - # - # self.assertTrue('sender' in foo, foo) - # # best we can do - # self.assertEquals(foo['sender'].__name__, 'class_method') - # self.assertTrue('start' in foo, foo) - # self.assertTrue('stop' not in foo, foo) - # self.assertTrue('args' in foo, foo) + callbacks['before'] = {} + + @pre_dispatch(TrackingTestCase.class_method) + def test(**kwargs): + foo.update(kwargs) + + self.assertTrue(hasattr(TrackingTestCase.class_method, '__wrapped__')) + self.assertEquals(len(callbacks['before']), 1) + + TrackingTestCase.class_method() + + self.assertTrue('sender' in foo, foo) + # best we can do + self.assertEquals(foo['sender'].__name__, 'class_method') + self.assertTrue('start' in foo, foo) + self.assertTrue('stop' not in foo, foo) + self.assertTrue('args' in foo, foo) def test_post_hook(self): foo = {} |
