From: Benjamin Peterson Date: Sat, 2 Oct 2010 17:55:47 +0000 (+0000) Subject: add a test and a note about metaclasses now being abcs X-Git-Tag: v3.2a3~68 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=970d1887c540d03d51e15db1173d3959acdd8e51;p=python add a test and a note about metaclasses now being abcs --- diff --git a/Lib/test/test_abc.py b/Lib/test/test_abc.py index 3a1d76b903..1b516445f2 100644 --- a/Lib/test/test_abc.py +++ b/Lib/test/test_abc.py @@ -105,6 +105,19 @@ class TestABC(unittest.TestCase): pass self.assertRaises(AttributeError, getattr, meta, "__abstractmethods__") + def test_metaclass_abc(self): + # Metaclasses can be ABCs, too. + class A(metaclass=abc.ABCMeta): + @abc.abstractmethod + def x(self): + pass + self.assertEqual(A.__abstractmethods__, {"x"}) + class meta(type, A): + def x(self): + return 1 + class C(metaclass=meta): + pass + def test_registration_basics(self): class A(metaclass=abc.ABCMeta): pass diff --git a/Misc/NEWS b/Misc/NEWS index 2a6d494cf5..c5d1e62c19 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,14 +10,15 @@ What's New in Python 3.2 Alpha 3? Core and Builtins ----------------- +- Issue #10006: type.__abstractmethods__ now raises an AttributeError. As a + result metaclasses can now be ABCs (see #9533). + - Issue #8670: ctypes.c_wchar supports non-BMP characters with 32 bits wchar_t. - Issue #8670: PyUnicode_AsWideChar() and PyUnicode_AsWideCharString() replace UTF-16 surrogate pairs by single non-BMP characters for 16 bits Py_UNICODE and 32 bits wchar_t (eg. Linux in narrow build). -- Issue #10006: type.__abstractmethods__ now raises an AttributeError. - - Issue #10003: Allow handling of SIGBREAK on Windows. Fixes a regression introduced by issue #9324.