From 9ec44ee898ee827daab19265314117f27bc648de Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Thu, 23 Apr 2020 03:56:59 +0200 Subject: [deprecation/refactoring] simplify class_moved --- logilab/common/deprecation.py | 14 +++++++++++--- test/unittest_deprecation.py | 17 +++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/logilab/common/deprecation.py b/logilab/common/deprecation.py index 5b2d28d..7fb2c1d 100644 --- a/logilab/common/deprecation.py +++ b/logilab/common/deprecation.py @@ -429,7 +429,15 @@ def class_renamed(old_name, new_class, message=None, version=None): return class_deprecated(old_name, (new_class,), class_dict) -def class_moved(new_class, old_name=None, message=None): - return _defaultdeprecator.class_moved(None, new_class, old_name, message) -class_moved.__doc__ = _defaultdeprecator.class_moved.__doc__ +def class_moved(new_class, old_name=None, message=None, version=None): + """nice wrapper around class_renamed when a class has been moved into + another module + """ + if old_name is None: + old_name = new_class.__name__ + + if message is None: + message = 'class %s is now available as %s.%s' % ( + old_name, new_class.__module__, new_class.__name__) + return class_renamed(old_name, new_class, message=message) diff --git a/test/unittest_deprecation.py b/test/unittest_deprecation.py index eb75444..5432823 100644 --- a/test/unittest_deprecation.py +++ b/test/unittest_deprecation.py @@ -61,6 +61,23 @@ class RawInputTC(TestCase): self.assertEqual(self.messages, ['[logilab.common] OldClass is deprecated, use AnyClass instead']) + def test_class_moved(self): + class AnyClass(object): + pass + + OldClass = deprecation.class_moved(new_class=AnyClass, old_name="OldName") + OldClass() + self.assertEqual(self.messages, + ['[logilab.common] class OldName is now available as unittest_deprecation.AnyClass']) + + self.messages = [] + + AnyClass = deprecation.class_moved(new_class=AnyClass) + + AnyClass() + self.assertEqual(self.messages, + ['[logilab.common] class AnyClass is now available as unittest_deprecation.AnyClass']) + def test_deprecated_func(self): any_func = deprecation.deprecated()(self.mk_func()) any_func() -- cgit v1.2.1