コード例 #1
0
ファイル: test_core.py プロジェクト: holg/rubicon-objc
    def test_objcmetaclass_caching(self):
        """ObjCMetaClass instances are cached."""

        ExampleMeta1 = ObjCMetaClass("Example")
        ExampleMeta2 = ObjCMetaClass("Example")

        self.assertIs(ExampleMeta1, ExampleMeta2)
コード例 #2
0
ファイル: test_core.py プロジェクト: samflash3/rubicon-objc
    def test_objcmetaclass_requires_metaclass(self):
        """ObjCMetaClass only accepts metaclass pointers."""

        random_obj = NSObject.alloc().init()
        with self.assertRaises(ValueError):
            ObjCMetaClass(random_obj.ptr)

        with self.assertRaises(ValueError):
            ObjCMetaClass(NSObject.ptr)
コード例 #3
0
ファイル: test_core.py プロジェクト: holg/rubicon-objc
    def test_objcclass_can_produce_objcmetaclass(self):
        """Creating an ObjCClass for a metaclass pointer gives an ObjCMetaclass."""

        examplemeta_ptr = libobjc.objc_getMetaClass(b"Example")
        ExampleMeta = ObjCClass(examplemeta_ptr)
        self.assertEqual(ExampleMeta, ObjCMetaClass("Example"))
        self.assertIsInstance(ExampleMeta, ObjCMetaClass)
コード例 #4
0
ファイル: test_core.py プロジェクト: holg/rubicon-objc
    def test_metaclass_by_name(self):
        """An Objective-C metaclass can be looked up by name."""

        Example = ObjCClass("Example")
        ExampleMeta = ObjCMetaClass("Example")

        self.assertEqual(ExampleMeta.name, "Example")
        self.assertEqual(ExampleMeta, Example.objc_class)
コード例 #5
0
ファイル: test_core.py プロジェクト: holg/rubicon-objc
    def test_metametaclass(self):
        """The class of a metaclass can be looked up."""

        ExampleMeta = ObjCMetaClass("Example")
        ExampleMetaMeta = ExampleMeta.objc_class

        self.assertIsInstance(ExampleMetaMeta, ObjCMetaClass)
        self.assertEqual(ExampleMetaMeta, NSObject.objc_class)
コード例 #6
0
ファイル: test_core.py プロジェクト: holg/rubicon-objc
    def test_nonexistant_metaclass(self):
        """A NameError is raised if a metaclass doesn't exist."""

        with self.assertRaises(NameError):
            ObjCMetaClass('DoesNotExist')
コード例 #7
0
ファイル: test_core.py プロジェクト: holg/rubicon-objc
    def test_metaclass_by_pointer(self):
        """An Objective-C metaclass can be created from a pointer."""

        examplemeta_ptr = libobjc.objc_getMetaClass(b"Example")
        ExampleMeta = ObjCMetaClass(examplemeta_ptr)
        self.assertEqual(ExampleMeta, ObjCMetaClass("Example"))