summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Peuch <cortex@worlddomination.be>2020-04-23 03:56:59 +0200
committerLaurent Peuch <cortex@worlddomination.be>2020-04-23 03:56:59 +0200
commit9ec44ee898ee827daab19265314117f27bc648de (patch)
tree1b2c76d8a360582478d298baef86f80d686327b2
parent30916daafb7eca535abd07028a1a570c90b27443 (diff)
downloadlogilab-common-9ec44ee898ee827daab19265314117f27bc648de.tar.gz
[deprecation/refactoring] simplify class_moved
-rw-r--r--logilab/common/deprecation.py14
-rw-r--r--test/unittest_deprecation.py17
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()