Commits

Ronald Oussoren committed 4ee2833

Add unittest for selector.native_signature

Comments (0)

Files changed (1)

Lib/objc/test/test_signatures.py

         self.assertEquals(objc._C_OUT, "o")
         self.assertEquals(objc._C_INOUT, "N")
 
+    def testNativeSignature(self):
+        s = objc.selector(lambda(x,y):1, signature="ii")
+        self.assertEquals(s.native_signature, None)
+
+        self.assertRaises(TypeError, setattr, s, 'native_signature', 'v@:ii')
+
+        s = objc.lookUpClass('NSObject').description
+        self.assertRaises(TypeError, setattr, s, 'native_signature', 'v@:ii')
+
+        # We know that the description signature isn't changed by default
+        self.assertEquals(s.signature, s.native_signature)
+
+        # Check that changing s.signature doesn't affect s.native_signature
+        try:
+            x = s.signature
+            s.signature = 'v@:ii'
+            self.assertEquals(s.native_signature, x)
+            self.assertEquals(s.signature, 'v@:ii')
+        finally:
+            s.signature = x
+
 
 if __name__ == '__main__':
     unittest.main()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.