diff --git a/scrapy/tests/test_utils_deprecate.py b/scrapy/tests/test_utils_deprecate.py index 6d18478df..2afb780ef 100644 --- a/scrapy/tests/test_utils_deprecate.py +++ b/scrapy/tests/test_utils_deprecate.py @@ -177,3 +177,8 @@ class WarnWhenSubclassedTest(unittest.TestCase): Deprecated = create_deprecated_class('Deprecated', NewName, {'foo': 'bar'}) self.assertEqual(Deprecated.foo, 'bar') + + def test_deprecate_a_class_with_custom_metaclass(self): + Meta1 = type('Meta1', (type,), {}) + New = Meta1('New', (), {}) + Deprecated = create_deprecated_class('Deprecated', New) diff --git a/scrapy/utils/deprecate.py b/scrapy/utils/deprecate.py index da3a4d2ee..6130ad800 100644 --- a/scrapy/utils/deprecate.py +++ b/scrapy/utils/deprecate.py @@ -45,7 +45,7 @@ def create_deprecated_class(name, new_class, clsdict=None, OldName. """ - class DeprecatedClass(type): + class DeprecatedClass(new_class.__class__): deprecated_class = None warned_on_subclass = False