1from PyObjCTools.TestSupport import *
2import objc
3NSObject = objc.lookUpClass("NSObject")
4NSSortDescriptor = objc.lookUpClass("NSSortDescriptor")
5
6objc.registerMetaDataForSelector(b"NSObject", b"selector",
7    dict(
8        retval=dict(type=objc._C_VOID)
9    ))
10
11
12class MetadataInheritanceHelper (NSObject):
13    def selector(self): return
14
15class TestMetadataInheritance (TestCase):
16
17    # These tests that PyObjC's signatures overrides don't
18    # kick in when the new signature is incompatible with
19    # the native signature.
20    def testPythonMeta(self):
21        o = MetadataInheritanceHelper.alloc().init()
22        self.assertResultHasType(o.selector, objc._C_VOID)
23
24    def testObjCMeta(self):
25        o = NSSortDescriptor.alloc().init()
26        self.assertResultHasType(o.selector, objc._C_SEL)
27
28
29if __name__ == "__main__":
30    main()
31