def testCreatingCallbacks(self):
        def function(*arg):
            pass

        @objc.callbackFor(OC_CallbackTest.selWithCallback_)
        def function(arg1, arg2):
            pass
        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))
        meta = function.__metadata__()
        self.assertIsInstance(meta, dict)
        self.assertEqual(len(meta['arguments']), 2)


        @objc.callbackFor(OC_CallbackTest.selWithCallback2_)
        def function():
            pass
        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))

        @objc.callbackFor(OC_CallbackTest.selWithCallback_andCallback_, -1)
        def function(a):
            pass
        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))

        @objc.callbackFor(OC_CallbackTest.selWithCallback_andCallback_, 2)
        def function(a):
            pass
        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))

        @objc.callbackFor(OC_CallbackTest.selWithCallback_andCallback_, 3)
        def function(a, b):
            pass
        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))

        self.assertRaises(objc.BadPrototypeError, objc.callbackFor(OC_CallbackTest.selWithCallback_), lambda a: None)
        self.assertRaises(objc.BadPrototypeError, objc.callbackFor(OC_CallbackTest.selWithCallback_), lambda a,b,c: None)
    def testCallbackForUnsupported(self):
        def function(arg):
            pass

        self.assertRaises(TypeError, objc.callbackFor(dir), function)
        self.assertRaises(TypeError, objc.callbackFor(function), function)
        self.assertRaises(TypeError, objc.callbackFor(42), function)
        self.assertRaises(ValueError, objc.callbackFor(OC_CallbackTest.selWithSEL_SEL_andObject_), function)
        self.assertRaises(ValueError, objc.callbackFor(OC_CallbackTest.selWithoutSEL_), function)
Beispiel #3
0
    def testCallbackForUnsupported(self):
        def function(arg):
            pass

        self.assertRaises(TypeError, objc.callbackFor(dir), function)
        self.assertRaises(TypeError, objc.callbackFor(function), function)
        self.assertRaises(TypeError, objc.callbackFor(42), function)
        self.assertRaises(ValueError, objc.callbackFor(OC_CallbackTest.selWithSEL_SEL_andObject_), function)
        self.assertRaises(ValueError, objc.callbackFor(OC_CallbackTest.selWithoutSEL_), function)
Beispiel #4
0
    def testCreatingCallbacks(self):
        def function(*arg):
            pass

        @objc.callbackFor(OC_CallbackTest.selWithCallback_)
        def function(arg1, arg2):
            pass

        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))
        meta = function.__metadata__()
        self.assertIsInstance(meta, dict)
        self.assertEqual(len(meta["arguments"]), 2)

        self.assertIsInstance(objc.callbackPointer(function), (int, long))
        self.assertRaises(ValueError, objc.callbackPointer, None)

        @objc.callbackFor(OC_CallbackTest.selWithCallback2_)
        def function():
            pass

        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))

        @objc.callbackFor(OC_CallbackTest.selWithCallback_andCallback_, -1)
        def function(a):
            pass

        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))

        @objc.callbackFor(OC_CallbackTest.selWithCallback_andCallback_, 2)
        def function(a):
            pass

        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))

        @objc.callbackFor(OC_CallbackTest.selWithCallback_andCallback_, 3)
        def function(a, b):
            pass

        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))

        self.assertRaises(
            objc.BadPrototypeError,
            objc.callbackFor(OC_CallbackTest.selWithCallback_),
            lambda a: None,
        )
        self.assertRaises(
            objc.BadPrototypeError,
            objc.callbackFor(OC_CallbackTest.selWithCallback_),
            lambda a, b, c: None,
        )
    def testCreatingCallbacks(self):
        def function(*arg):
            pass

        @objc.callbackFor(OC_CallbackTest.selWithCallback_)
        def function(arg1, arg2):
            pass

        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))

        @objc.callbackFor(OC_CallbackTest.selWithCallback2_)
        def function():
            pass

        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))

        @objc.callbackFor(OC_CallbackTest.selWithCallback_andCallback_, -1)
        def function(a):
            pass

        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))

        @objc.callbackFor(OC_CallbackTest.selWithCallback_andCallback_, 2)
        def function(a):
            pass

        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))

        @objc.callbackFor(OC_CallbackTest.selWithCallback_andCallback_, 3)
        def function(a, b):
            pass

        self.assertIn(' "objc.__imp__" ', repr(function.pyobjc_closure))

        self.assertRaises(objc.BadPrototypeError,
                          objc.callbackFor(OC_CallbackTest.selWithCallback_),
                          lambda a: None)
        self.assertRaises(objc.BadPrototypeError,
                          objc.callbackFor(OC_CallbackTest.selWithCallback_),
                          lambda a, b, c: None)
Beispiel #6
0
    AXObserverCreate,
    AXObserverRemoveNotification,
    AXUIElementCopyActionNames,
    AXUIElementCopyAttributeNames,
    AXUIElementCopyAttributeValue,
    AXUIElementCopyElementAtPosition,
    AXUIElementGetPid,
    AXUIElementIsAttributeSettable,
    AXUIElementPerformAction,
    AXUIElementSetAttributeValue,
    AXUIElementSetMessagingTimeout,
)
from atomacos import errors
from objc import callbackFor

PAXObserverCallback = callbackFor(AXObserverCreate)


def PAXObserverCreate(application, callback):
    """
    Creates a new observer that can receive notifications
    from the specified application.

    Args:
        application: The process ID of the application
        callback: The callback function

    Returns: an AXObserverRef representing the observer object

    """
    error_code, observer = AXObserverCreate(application, callback, None)