1from PyObjCTools.TestSupport import *
2import objc
3
4from Foundation import *
5
6class TestSubclassing(TestCase):
7    def testBasicSubclassing(self):
8        class NSObjectSubclass(NSObject):
9            def someRandomMethod(self):
10                return 42
11
12        subclassClass = NSClassFromString( "NSObjectSubclass" )
13
14        self.assert_( subclassClass , "Failed to subclass NSObject." )
15
16        subclassInstance = subclassClass.new()
17        self.assert_( isinstance( subclassInstance, subclassClass ), "Subclass instance was not an instance of NSObjectSubclass." )
18        self.assert_( isinstance( subclassInstance, NSObject ), "Subclass instance was not a subclass of NSObject." )
19        self.assert_( not isinstance( subclassInstance, NSArray ), "Not a subclass of NSArray, but instanceof() thinks so." )
20
21        subclassInstance.description()
22        self.assert_( subclassInstance.someRandomMethod() == 42, "someRandomMethod() did not return expected response." )
23
24        self.assert_( subclassInstance is subclassInstance, "Identity check failed." )
25        self.assert_( subclassInstance is subclassInstance.self(), "Identity check failed." )
26
27if __name__ == '__main__':
28    main( )
29