def METHOD_NAME(self):
    @abc.abstractproperty
    def foo(self): pass
    self.assertTrue(foo.__isabstractmethod__)
    def bar(self): pass
    self.assertFalse(hasattr(bar, "__isabstractmethod__"))
    class C:
        __metaclass__ = abc.ABCMeta
        @abc.abstractproperty
        def foo(self): return 3
    class D(C):
        @property
        def foo(self): return super(D, self).foo
    self.assertEqual(D().foo, 3)