diff --git a/scrapy/tests/test_utils_deprecate.py b/scrapy/tests/test_utils_deprecate.py index b255ca601..377551d3a 100644 --- a/scrapy/tests/test_utils_deprecate.py +++ b/scrapy/tests/test_utils_deprecate.py @@ -31,6 +31,9 @@ class WarnWhenSubclassedTest(unittest.TestCase): class UserClass(Deprecated): pass + class NoWarnOnMe(UserClass): + pass + self.assertEqual(len(w), 1) msg = w[0] assert issubclass(msg.category, MyWarning) diff --git a/scrapy/utils/deprecate.py b/scrapy/utils/deprecate.py index 252a1eb53..c9dac344a 100644 --- a/scrapy/utils/deprecate.py +++ b/scrapy/utils/deprecate.py @@ -59,7 +59,7 @@ def create_deprecated_class(name, new_class, clsdict=None, def __init__(cls, name, bases, clsdict_): meta = cls.__class__ old = meta.deprecated_class - if (cls is not old) and not (warn_once and meta.warned_on_subclass): + if old in bases and not (warn_once and meta.warned_on_subclass): meta.warned_on_subclass = True msg = subclass_warn_message.format(cls=_clspath(cls), old=_clspath(old),