pyobjc / pyobjc-framework-SystemConfiguration / PyObjCTest / test_SCDynamicStoreCopyDHCPInfo.py

from PyObjCTools.TestSupport import *

from SystemConfiguration import *
from Foundation import NSData, NSDate
import os

class TestSCDynamicStoreCopyDHCPInfo (TestCase):
    def testFunctions(self):
        def callback(st, keys, info):
            pass

        st = SCDynamicStoreCreate(None, "pyobjc.test", callback, None)
        self.assertTrue(isinstance(st, SCDynamicStoreRef))

        have_ip = False
        with os.popen("ifconfig en0 | grep inet", "r") as fp:
            ip = fp.read()
        if ip.strip():
            have_ip = True
        else:
            with os.popen("ifconfig en1 | grep inet", "r") as fp:
                ip = fp.read()
            if ip.strip():
                have_ip = True

        info = SCDynamicStoreCopyDHCPInfo(st, None)
        if not have_ip:
            self.assertIs(info, None)
        else:
            self.assertIsInstance(info, CFDictionaryRef)

            r = DHCPInfoGetOptionData(info,  1)
            self.assertTrue(r is None or isinstance(r, NSData))

            r = DHCPInfoGetLeaseStartTime(info)
            self.assertTrue(r is None or isinstance(r, NSDate))

        if os_release() >= '10.8':
            DHCPInfoGetLeaseExpirationTime

            if info:
                r = DHCPInfoGetLeaseExpirationTime(info)
                self.assertTrue(r is None or isinstance(r, NSDate))

if __name__ == "__main__":
    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.