Esempio n. 1
0
    def testFunctions(self):
        self.assertResultIsCFRetained(CFNetwork.CFNetworkCopyProxiesForURL)
        url = CFNetwork.CFURLCreateWithString(None, "http://www.apple.com/",
                                              None)
        v = CFNetwork.CFNetworkCopyProxiesForURL(url, None)
        self.assertIsInstance(v, CFNetwork.CFArrayRef)

        self.assertResultIsCFRetained(
            CFNetwork.CFNetworkCopyProxiesForAutoConfigurationScript)
        self.assertArgIsOut(
            CFNetwork.CFNetworkCopyProxiesForAutoConfigurationScript, 2)
        v, err = CFNetwork.CFNetworkCopyProxiesForAutoConfigurationScript(
            SCRIPT, url, None)
        self.assertTrue(err is None)
        self.assertIsInstance(v, CFNetwork.CFArrayRef)
        x = v[0]
        self.assertEqual(x[CFNetwork.kCFProxyTypeKey],
                         CFNetwork.kCFProxyTypeHTTP)
        self.assertEqual(x[CFNetwork.kCFProxyHostNameKey], "proxy.apple.com")
        self.assertEqual(x[CFNetwork.kCFProxyPortNumberKey], 8080)

        self.assertResultIsCFRetained(
            CFNetwork.CFNetworkCopySystemProxySettings)
        v = CFNetwork.CFNetworkCopySystemProxySettings()
        self.assertIsInstance(v, CFNetwork.CFDictionaryRef)
Esempio n. 2
0
    def testFunctions(self):
        self.assertResultIsCFRetained(CFNetwork.CFReadStreamCreateWithFTPURL)
        url = CFNetwork.CFURLCreateWithString(None, "ftp://ftp.python.org/",
                                              None)
        self.assertIsInstance(url, CFNetwork.CFURLRef)
        ftp = CFNetwork.CFReadStreamCreateWithFTPURL(None, url)
        self.assertIsInstance(ftp, CFNetwork.CFReadStreamRef)

        buf = b"-rw-r--r--  1 ronald  staff  1957 Mar 31 07:22 test_cfftpstream.py\r\n"
        self.assertArgHasType(CFNetwork.CFFTPCreateParsedResourceListing, 1,
                              b"n^v")
        self.assertArgSizeInArg(CFNetwork.CFFTPCreateParsedResourceListing, 1,
                                2)
        self.assertArgIsOut(CFNetwork.CFFTPCreateParsedResourceListing, 3)
        cnt, out = CFNetwork.CFFTPCreateParsedResourceListing(
            None, buf, len(buf), None)
        self.assertIsInstance(cnt, int)
        self.assertIsInstance(out, CFNetwork.CFDictionaryRef)
        self.assertEqual(out[CFNetwork.kCFFTPResourceGroup], "staff")

        self.assertResultIsCFRetained(CFNetwork.CFWriteStreamCreateWithFTPURL)
        url = CFNetwork.CFURLCreateWithString(
            None, "ftp://www.rivm.nl/incoming/test.txt", None)
        self.assertIsInstance(url, CFNetwork.CFURLRef)
        ftp = CFNetwork.CFWriteStreamCreateWithFTPURL(None, url)
        self.assertIsInstance(ftp, CFNetwork.CFWriteStreamRef)
Esempio n. 3
0
    def testFunctions(self):
        self.assertIsInstance(CFNetwork.CFHostGetTypeID(), int)

        self.assertResultIsCFRetained(CFNetwork.CFHostCreateWithName)
        v = CFNetwork.CFHostCreateWithName(None, "www.python.org")
        self.assertIsInstance(v, CFNetwork.CFHostRef)

        try:
            # value = socket.gethostbyname("www.python.org")
            socket.gethostbyname("www.python.org")
            expected_resolution = True
        except socket.error:
            expected_resolution = False

        addr = b" " * 24
        self.assertResultIsCFRetained(CFNetwork.CFHostCreateWithAddress)
        t = CFNetwork.CFHostCreateWithAddress(None, addr)
        self.assertIsInstance(t, CFNetwork.CFHostRef)

        self.assertResultIsBOOL(CFNetwork.CFHostStartInfoResolution)
        self.assertArgIsOut(CFNetwork.CFHostStartInfoResolution, 2)
        ok, error = CFNetwork.CFHostStartInfoResolution(
            v, CFNetwork.kCFHostAddresses, None)
        self.assertIs(ok, expected_resolution)
        self.assertIsInstance(error, CFNetwork.CFStreamError)

        self.assertResultIsCFRetained(CFNetwork.CFHostCreateCopy)
        # w = CFNetwork.CFHostCreateCopy(None, v)
        # self.assertIsInstance(w, type(v))

        self.assertArgHasType(CFNetwork.CFHostGetReachability, 1,
                              b"o^" + objc._C_NSBOOL)
        lst, ok = CFNetwork.CFHostGetReachability(v, None)
        self.assertIsInstance(lst, (CFNetwork.CFDataRef, type(None)))
        self.assertIsInstance(ok, bool)

        CFNetwork.CFHostCancelInfoResolution(v, CFNetwork.kCFHostAddresses)

        rl = CFNetwork.CFRunLoopGetCurrent()
        CFNetwork.CFHostScheduleWithRunLoop(v, rl,
                                            CFNetwork.kCFRunLoopDefaultMode)

        CFNetwork.CFHostUnscheduleFromRunLoop(v, rl,
                                              CFNetwork.kCFRunLoopDefaultMode)

        self.assertArgHasType(CFNetwork.CFHostGetNames, 1,
                              b"o^" + objc._C_NSBOOL)
        lst, ok = CFNetwork.CFHostGetNames(v, None)
        print("XXX", lst)
        self.assertIsInstance(lst, CFNetwork.CFArrayRef)
        self.assertIsInstance(ok, bool)
    def testFuncdtions(self):
        self.assertResultIsCFRetained(
            CFNetwork.CFNetDiagnosticCreateWithStreams)

        host = CFNetwork.CFHostCreateWithName(None, "www.apple.com")
        rd, wr = CFNetwork.CFStreamCreatePairWithSocketToCFHost(
            None, host, 80, None, None)
        self.assertIsInstance(rd, CFNetwork.CFReadStreamRef)
        self.assertIsInstance(wr, CFNetwork.CFWriteStreamRef)

        ref = CFNetwork.CFNetDiagnosticCreateWithStreams(None, rd, wr)
        self.assertIsInstance(ref, objc.objc_object)  # CFNetDiagnosticRef)

        self.assertResultIsCFRetained(CFNetwork.CFNetDiagnosticCreateWithURL)
        ref = CFNetwork.CFNetDiagnosticCreateWithURL(
            None,
            CFNetwork.CFURLCreateWithString(None, "http://www.apple.com/",
                                            None))
        self.assertIsInstance(ref, objc.objc_object)  # CFNetDiagnosticRef)

        CFNetwork.CFNetDiagnosticSetName(ref, "hello world")

        sts = CFNetwork.CFNetDiagnosticDiagnoseProblemInteractively(ref)
        self.assertIsInstance(sts, int)

        self.assertArgIsOut(
            CFNetwork.CFNetDiagnosticCopyNetworkStatusPassively, 1)
        sts, descr = CFNetwork.CFNetDiagnosticCopyNetworkStatusPassively(
            ref, None)
        self.assertIsInstance(sts, int)
        self.assertIsInstance(descr, str)
Esempio n. 5
0
    def testCallbacks(self):
        lst = []
        ctx = object()

        def callback(host, typeinfo, error, ctx):
            lst.append([host, typeinfo, error, ctx])

        host = CFNetwork.CFHostCreateWithName(None, "localhost")
        CFNetwork.CFHostSetClient(host, callback, ctx)

        rl = CFNetwork.CFRunLoopGetCurrent()
        CFNetwork.CFHostScheduleWithRunLoop(host, rl, CFNetwork.kCFRunLoopDefaultMode)

        ok, err = CFNetwork.CFHostStartInfoResolution(
            host, CFNetwork.kCFHostAddresses, None
        )
        self.assertTrue(ok)
        self.assertIsInstance(ok, bool)
        self.assertIsInstance(err, CFNetwork.CFStreamError)

        CFNetwork.CFRunLoopRunInMode(CFNetwork.kCFRunLoopDefaultMode, 4.0, False)

        CFNetwork.CFHostUnscheduleFromRunLoop(host, rl, CFNetwork.kCFRunLoopDefaultMode)
        self.assertEqual(len(lst), 1)
        self.assertIsInstance(lst[0][0], CFNetwork.CFHostRef)
        self.assertIsInstance(lst[0][1], int)
        self.assertIsInstance(lst[0][2], CFNetwork.CFStreamError)
        self.assertIs(lst[0][3], ctx)

        self.assertResultIsNotCFRetained(CFNetwork.CFHostGetAddressing)
        self.assertArgHasType(CFNetwork.CFHostGetAddressing, 1, b"o^Z")
        lst, ok = CFNetwork.CFHostGetAddressing(host, None)
        self.assertIsInstance(lst, CFNetwork.CFArrayRef)
        self.assertIsInstance(lst[0], CFNetwork.CFDataRef)
        self.assertIsInstance(ok, bool)
Esempio n. 6
0
    def testFunctions(self):
        err = CFNetwork.CFStreamError()
        err.error = (1 << 16) + 2

        v = CFNetwork.CFSocketStreamSOCKSGetErrorSubdomain(err)
        self.assertEqual(v, 1)

        v = CFNetwork.CFSocketStreamSOCKSGetError(err)
        self.assertEqual(v, 2)

        self.assertArgIsCFRetained(CFNetwork.CFStreamCreatePairWithSocketToCFHost, 3)
        self.assertArgIsCFRetained(CFNetwork.CFStreamCreatePairWithSocketToCFHost, 4)
        self.assertArgIsOut(CFNetwork.CFStreamCreatePairWithSocketToCFHost, 3)
        self.assertArgIsOut(CFNetwork.CFStreamCreatePairWithSocketToCFHost, 4)

        host = CFNetwork.CFHostCreateWithName(None, "connect.apple.com")
        rd, wr = CFNetwork.CFStreamCreatePairWithSocketToCFHost(
            None, host, 443, None, None
        )
        self.assertIsInstance(rd, CFNetwork.CFReadStreamRef)
        self.assertIsInstance(wr, CFNetwork.CFWriteStreamRef)

        if os_level_key(os_release()) < os_level_key("10.10"):
            self.assertResultIsBOOL(CFNetwork.CFSocketStreamPairSetSecurityProtocol)
            v = CFNetwork.CFSocketStreamPairSetSecurityProtocol(
                rd, wr, CFNetwork.kCFStreamSocketSecuritySSLv23
            )
            self.assertIsInstance(v, bool)

        self.assertArgIsCFRetained(
            CFNetwork.CFStreamCreatePairWithSocketToNetService, 2
        )
        self.assertArgIsCFRetained(
            CFNetwork.CFStreamCreatePairWithSocketToNetService, 3
        )
        self.assertArgIsOut(CFNetwork.CFStreamCreatePairWithSocketToNetService, 2)
        self.assertArgIsOut(CFNetwork.CFStreamCreatePairWithSocketToNetService, 3)
        service = CFNetwork.CFNetServiceCreate(
            None, "pyobjc.local", "ssh", "pyobjc.test.local", 9999
        )
        rd, wr = CFNetwork.CFStreamCreatePairWithSocketToNetService(
            None, service, None, None
        )
        self.assertIsInstance(rd, CFNetwork.CFReadStreamRef)
        self.assertIsInstance(wr, CFNetwork.CFWriteStreamRef)
Esempio n. 7
0
    def testFunctions(self):
        url = CFNetwork.CFURLCreateWithString(None, "http://www.python.org/",
                                              None)
        self.assertIsInstance(url, CFNetwork.CFURLRef)

        req = CFNetwork.CFHTTPMessageCreateRequest(None, "GET", url,
                                                   CFNetwork.kCFHTTPVersion1_1)
        self.assertIsInstance(req, CFNetwork.CFHTTPMessageRef)

        self.assertResultIsCFRetained(
            CFNetwork.CFReadStreamCreateForHTTPRequest)
        v = CFNetwork.CFReadStreamCreateForHTTPRequest(None, req)
        self.assertIsInstance(v, CFNetwork.CFReadStreamRef)

        with open("/dev/null", "w") as fp:
            fd_2 = os.dup(2)
            os.dup2(fp.fileno(), 2)

        try:
            # Avoid deprecation messages from CFNetwork

            self.assertResultIsCFRetained(
                CFNetwork.CFReadStreamCreateForStreamedHTTPRequest)
            v = CFNetwork.CFReadStreamCreateForStreamedHTTPRequest(
                None, req, v)
            self.assertIsInstance(v, CFNetwork.CFReadStreamRef)

            if os_level_key(os_release()) < os_level_key("10.15"):
                self.assertArgIsBOOL(
                    CFNetwork.CFHTTPReadStreamSetRedirectsAutomatically, 1)
                CFNetwork.CFHTTPReadStreamSetRedirectsAutomatically(v, True)

            if os_level_key(os_release()) < os_level_key("10.9"):
                CFNetwork.CFHTTPReadStreamSetProxy(v, "localhost", 8080)

        finally:
            os.dup2(fd_2, 2)
Esempio n. 8
0
    def testFunctions(self):
        self.assertIsInstance(CFNetwork.CFHTTPAuthenticationGetTypeID(), int)

        msg = CFNetwork.CFHTTPMessageCreateResponse(
            None, 401, "Authenticate", CFNetwork.kCFHTTPVersion1_0)
        self.assertIsInstance(msg, CFNetwork.CFHTTPMessageRef)
        CFNetwork.CFHTTPMessageSetHeaderFieldValue(
            msg,
            NSString.stringWithString_("WWW-Authenticate"),
            NSString.stringWithString_('Basic realm="WallyWorld"'),
        )

        self.assertResultIsCFRetained(
            CFNetwork.CFHTTPAuthenticationCreateFromResponse)
        ref = CFNetwork.CFHTTPAuthenticationCreateFromResponse(None, msg)
        self.assertIsInstance(ref, CFNetwork.CFHTTPAuthenticationRef)

        self.assertResultIsBOOL(CFNetwork.CFHTTPAuthenticationIsValid)
        self.assertArgIsOut(CFNetwork.CFHTTPAuthenticationIsValid, 1)
        v, err = CFNetwork.CFHTTPAuthenticationIsValid(ref, None)
        self.assertIsInstance(v, bool)
        if v:
            self.assertTrue(err is None)
        else:
            self.assertIsInstance(err, CFNetwork.CFStreamError)

        self.assertResultIsBOOL(CFNetwork.CFHTTPAuthenticationAppliesToRequest)
        v = CFNetwork.CFHTTPAuthenticationAppliesToRequest(ref, msg)
        self.assertIsInstance(v, bool)

        self.assertResultIsBOOL(
            CFNetwork.CFHTTPAuthenticationRequiresOrderedRequests)
        v = CFNetwork.CFHTTPAuthenticationRequiresOrderedRequests(ref)
        self.assertIsInstance(v, bool)

        url = CFNetwork.CFURLCreateWithString(None, "http://www.python.org/",
                                              None)
        req = CFNetwork.CFHTTPMessageCreateRequest(None, "GET", url, "1.0")

        self.assertResultIsBOOL(CFNetwork.CFHTTPMessageApplyCredentials)
        self.assertArgIsOut(CFNetwork.CFHTTPMessageApplyCredentials, 4)
        v, err = CFNetwork.CFHTTPMessageApplyCredentials(
            req, ref, "ronald", "secret", None)
        if v is True:
            self.assertEqual(err, None)

        else:
            self.assertIsInstance(err, CFNetwork.CFStreamError)

        self.assertResultIsBOOL(
            CFNetwork.CFHTTPMessageApplyCredentialDictionary)
        self.assertArgIsOut(CFNetwork.CFHTTPMessageApplyCredentialDictionary,
                            3)
        v, err = CFNetwork.CFHTTPMessageApplyCredentialDictionary(
            req,
            ref,
            {
                CFNetwork.kCFHTTPAuthenticationUsername: "******",
                CFNetwork.kCFHTTPAuthenticationPassword: "******",
            },
            None,
        )
        if v is True:
            self.assertEqual(err, None)
        else:
            self.assertIsInstance(err, CFNetwork.CFStreamError)

        self.assertResultIsCFRetained(CFNetwork.CFHTTPAuthenticationCopyRealm)
        self.assertResultHasType(CFNetwork.CFHTTPAuthenticationCopyRealm,
                                 b"^{__CFString=}")
        v = CFNetwork.CFHTTPAuthenticationCopyRealm(ref)
        self.assertTrue(v is None or isinstance(v, str))

        self.assertResultIsCFRetained(
            CFNetwork.CFHTTPAuthenticationCopyDomains)
        self.assertResultHasType(CFNetwork.CFHTTPAuthenticationCopyDomains,
                                 b"^{__CFArray=}")
        v = CFNetwork.CFHTTPAuthenticationCopyDomains(ref)
        self.assertTrue(v is None or isinstance(v, CFNetwork.CFArrayRef))

        self.assertResultIsCFRetained(CFNetwork.CFHTTPAuthenticationCopyMethod)
        self.assertResultHasType(CFNetwork.CFHTTPAuthenticationCopyMethod,
                                 b"^{__CFString=}")
        v = CFNetwork.CFHTTPAuthenticationCopyMethod(ref)
        self.assertTrue(v is None or isinstance(v, str))

        self.assertResultIsBOOL(
            CFNetwork.CFHTTPAuthenticationRequiresUserNameAndPassword)
        v = CFNetwork.CFHTTPAuthenticationRequiresUserNameAndPassword(ref)
        self.assertIsInstance(v, bool)

        self.assertResultIsBOOL(
            CFNetwork.CFHTTPAuthenticationRequiresAccountDomain)
        v = CFNetwork.CFHTTPAuthenticationRequiresAccountDomain(ref)
        self.assertIsInstance(v, bool)
Esempio n. 9
0
    def testFunctions(self):
        self.assertIsInstance(CFNetwork.CFHTTPMessageGetTypeID(), int)

        url = CFNetwork.CFURLCreateWithString(None, "http://www.python.org/",
                                              None)
        self.assertIsInstance(url, CFNetwork.CFURLRef)

        self.assertResultIsCFRetained(CFNetwork.CFHTTPMessageCreateRequest)
        req = CFNetwork.CFHTTPMessageCreateRequest(None, "GET", url,
                                                   CFNetwork.kCFHTTPVersion1_1)
        self.assertIsInstance(req, CFNetwork.CFHTTPMessageRef)

        self.assertResultIsCFRetained(CFNetwork.CFHTTPMessageCreateResponse)
        resp = CFNetwork.CFHTTPMessageCreateResponse(
            None, 200, "Okidoki", CFNetwork.kCFHTTPVersion1_1)
        self.assertIsInstance(req, CFNetwork.CFHTTPMessageRef)

        self.assertResultIsCFRetained(CFNetwork.CFHTTPMessageCreateEmpty)
        self.assertArgIsBOOL(CFNetwork.CFHTTPMessageCreateEmpty, 1)
        m = CFNetwork.CFHTTPMessageCreateEmpty(None, True)
        self.assertIsInstance(m, CFNetwork.CFHTTPMessageRef)

        self.assertResultIsCFRetained(CFNetwork.CFHTTPMessageCreateCopy)
        m = CFNetwork.CFHTTPMessageCreateCopy(None, req)
        self.assertIsInstance(m, CFNetwork.CFHTTPMessageRef)

        self.assertResultIsBOOL(CFNetwork.CFHTTPMessageIsRequest)
        self.assertTrue(CFNetwork.CFHTTPMessageIsRequest(req) is True)
        self.assertTrue(CFNetwork.CFHTTPMessageIsRequest(resp) is False)

        self.assertResultIsCFRetained(CFNetwork.CFHTTPMessageCopyVersion)
        v = CFNetwork.CFHTTPMessageCopyVersion(req)
        self.assertIsInstance(v, str)

        CFNetwork.CFHTTPMessageSetBody(req, b"hello world")

        self.assertResultIsCFRetained(CFNetwork.CFHTTPMessageCopyBody)
        b = CFNetwork.CFHTTPMessageCopyBody(req)
        self.assertIsInstance(b, (CFNetwork.CFDataRef, memoryview, bytes))

        self.assertResultIsCFRetained(
            CFNetwork.CFHTTPMessageCopyAllHeaderFields)
        v = CFNetwork.CFHTTPMessageCopyAllHeaderFields(req)
        self.assertIsInstance(v, CFNetwork.CFDictionaryRef)

        self.assertResultIsCFRetained(
            CFNetwork.CFHTTPMessageCopyHeaderFieldValue)
        v = CFNetwork.CFHTTPMessageCopyHeaderFieldValue(req, "X-Python")
        self.assertTrue(v is None)

        CFNetwork.CFHTTPMessageSetHeaderFieldValue(req, "X-Python", "Rocks")
        v = CFNetwork.CFHTTPMessageCopyHeaderFieldValue(req, "X-Python")
        self.assertEqual(v, "Rocks")

        self.assertResultIsBOOL(CFNetwork.CFHTTPMessageAppendBytes)
        self.assertArgHasType(CFNetwork.CFHTTPMessageAppendBytes, 1, b"n^v")
        self.assertArgSizeInArg(CFNetwork.CFHTTPMessageAppendBytes, 1, 2)

        v = CFNetwork.CFHTTPMessageAppendBytes(req, b"hello world", 11)
        self.assertTrue(v is True)

        self.assertResultIsBOOL(CFNetwork.CFHTTPMessageIsHeaderComplete)
        v = CFNetwork.CFHTTPMessageIsHeaderComplete(req)
        self.assertTrue(v is False or v is True)

        self.assertResultIsCFRetained(
            CFNetwork.CFHTTPMessageCopySerializedMessage)
        v = CFNetwork.CFHTTPMessageCopySerializedMessage(resp)
        self.assertIsInstance(v, CFNetwork.CFDataRef)

        self.assertResultIsCFRetained(CFNetwork.CFHTTPMessageCopyRequestURL)
        v = CFNetwork.CFHTTPMessageCopyRequestURL(req)
        self.assertIsInstance(v, CFNetwork.CFURLRef)

        self.assertResultIsCFRetained(CFNetwork.CFHTTPMessageCopyRequestMethod)
        v = CFNetwork.CFHTTPMessageCopyRequestMethod(req)
        self.assertIsInstance(v, str)

        self.assertResultIsBOOL(CFNetwork.CFHTTPMessageAddAuthentication)
        self.assertArgIsBOOL(CFNetwork.CFHTTPMessageAddAuthentication, 5)
        v = CFNetwork.CFHTTPMessageAddAuthentication(
            req,
            resp,
            "ronald",
            "secret",
            CFNetwork.kCFHTTPAuthenticationSchemeBasic,
            False,
        )
        self.assertIsInstance(v, bool)

        v = CFNetwork.CFHTTPMessageGetResponseStatusCode(resp)
        self.assertIsInstance(v, int)

        self.assertResultIsCFRetained(
            CFNetwork.CFHTTPMessageCopyResponseStatusLine)
        v = CFNetwork.CFHTTPMessageCopyResponseStatusLine(resp)
        self.assertIsInstance(v, str)
Esempio n. 10
0
    def testManual(self):
        lst = []
        ctx = object()

        def callback(ctx, proxies, error):
            lst.append([ctx, proxies, error])

        url = CFNetwork.CFURLCreateWithString(None, "http://www.apple.com/",
                                              None)

        rls = CFNetwork.CFNetworkExecuteProxyAutoConfigurationScript(
            SCRIPT, url, callback, ctx)
        self.assertIsInstance(rls, CFNetwork.CFRunLoopSourceRef)

        rl = CFNetwork.CFRunLoopGetCurrent()
        CFNetwork.CFRunLoopAddSource(rl, rls, CFNetwork.kCFRunLoopCommonModes)

        CFNetwork.CFRunLoopRunInMode(CFNetwork.kCFRunLoopDefaultMode, 1.0,
                                     False)

        CFNetwork.CFRunLoopRemoveSource(rl, rls,
                                        CFNetwork.kCFRunLoopCommonModes)

        self.assertNotEqual(len(lst), 0)
        self.assertTrue(lst[0][0] is ctx)
        self.assertIsInstance(lst[0][1], CFNetwork.CFArrayRef)
        self.assertEqual(lst[0][2], None)

        lst[:] = []
        path = os.path.join(os.path.dirname(__file__), "proxy.pac")
        cwd = os.getcwd()
        if path.startswith(cwd):
            path = path[len(cwd) + 1:]
        scriptURL = CFNetwork.CFURLCreateWithFileSystemPath(
            None, path, CFNetwork.kCFURLPOSIXPathStyle, False)

        rls = CFNetwork.CFNetworkExecuteProxyAutoConfigurationURL(
            scriptURL, url, callback, ctx)
        self.assertIsInstance(rls, CFNetwork.CFRunLoopSourceRef)

        CFNetwork.CFRunLoopAddSource(rl, rls, CFNetwork.kCFRunLoopCommonModes)

        CFNetwork.CFRunLoopRunInMode(CFNetwork.kCFRunLoopDefaultMode, 1.0,
                                     True)

        CFNetwork.CFRunLoopRemoveSource(rl, rls,
                                        CFNetwork.kCFRunLoopCommonModes)

        # print lst

        self.assertNotEqual(len(lst), 0)
        self.assertTrue(lst[0][0] is ctx)
        if lst[0][2] is None:
            self.assertIsInstance(lst[0][1], CFNetwork.CFArrayRef)
            self.assertEqual(lst[0][2], None)

        else:
            self.assertEqual(lst[0][1], None)
            self.assertIsInstance(lst[0][2], CFNetwork.CFErrorRef)
Esempio n. 11
0
 def testFunctions10_6(self):
     r = CFNetwork.CFNetworkCopySystemProxySettings()
     self.assertIsInstance(r, CFNetwork.CFDictionaryRef)
Esempio n. 12
0
    def testFunctions(self):
        self.assertIsInstance(CFNetwork.CFNetServiceGetTypeID(), int)
        self.assertIsInstance(CFNetwork.CFNetServiceMonitorGetTypeID(), int)
        self.assertIsInstance(CFNetwork.CFNetServiceBrowserGetTypeID(), int)

        self.assertResultIsCFRetained(CFNetwork.CFNetServiceCreate)
        serv = CFNetwork.CFNetServiceCreate(None, "pyobjc.local", "ssh",
                                            "pyobjc.test.local", 9999)
        self.assertIsInstance(serv, CFNetwork.CFNetServiceRef)

        self.assertResultIsCFRetained(CFNetwork.CFNetServiceCreateCopy)
        v = CFNetwork.CFNetServiceCreateCopy(None, serv)
        self.assertIsInstance(v, CFNetwork.CFNetServiceRef)

        dom = CFNetwork.CFNetServiceGetDomain(serv)
        self.assertIsInstance(dom, str)

        dom = CFNetwork.CFNetServiceGetType(serv)
        self.assertIsInstance(dom, str)

        dom = CFNetwork.CFNetServiceGetName(serv)
        self.assertIsInstance(dom, str)

        self.assertResultIsBOOL(CFNetwork.CFNetServiceRegisterWithOptions)
        self.assertArgIsOut(CFNetwork.CFNetServiceRegisterWithOptions, 2)

        ok, err = CFNetwork.CFNetServiceRegisterWithOptions(
            serv, CFNetwork.kCFNetServiceFlagNoAutoRename, None)
        self.assertIsInstance(ok, bool)
        if ok:
            self.assertEqual(err, None)
        else:
            self.assertIsInstance(err, CFNetwork.CFStreamError)

        self.assertResultIsBOOL(CFNetwork.CFNetServiceResolveWithTimeout)
        self.assertArgIsOut(CFNetwork.CFNetServiceResolveWithTimeout, 2)
        ok, err = CFNetwork.CFNetServiceResolveWithTimeout(serv, 1.0, None)
        self.assertIsInstance(ok, bool)
        if ok:
            self.assertEqual(err, None)
        else:
            self.assertIsInstance(err, CFNetwork.CFStreamError)

        host = CFNetwork.CFNetServiceGetTargetHost(serv)
        self.assertIsInstance(host, (str, type(None)))

        port = CFNetwork.CFNetServiceGetPortNumber(serv)
        self.assertIsInstance(port, int)

        v = CFNetwork.CFNetServiceGetAddressing(serv)
        self.assertIsInstance(v, (Foundation.NSArray, type(None)))

        v = CFNetwork.CFNetServiceGetTXTData(serv)
        self.assertIsInstance(v, (Foundation.NSData, type(None)))

        v = CFNetwork.CFNetServiceCreateTXTDataWithDictionary(
            None, {
                "key": "value",
                "key2": "value2"
            })
        self.assertIsInstance(v, Foundation.NSData)

        v = CFNetwork.CFNetServiceCreateDictionaryWithTXTData(None, v)
        self.assertIsInstance(v, Foundation.NSDictionary)

        self.assertResultIsBOOL(CFNetwork.CFNetServiceSetTXTData)
        ok = CFNetwork.CFNetServiceSetTXTData(serv, b"hello")
        self.assertIsInstance(ok, bool)

        rl = CFNetwork.CFRunLoopGetCurrent()
        CFNetwork.CFNetServiceScheduleWithRunLoop(
            serv, rl, CFNetwork.kCFRunLoopDefaultMode)
        CFNetwork.CFNetServiceUnscheduleFromRunLoop(
            serv, rl, CFNetwork.kCFRunLoopDefaultMode)

        CFNetwork.CFNetServiceCancel(serv)