[PyObjC-svn] r2023 - trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest

[email protected]
Newsgroups gmane.comp.python.pyobjc.cvs
Message-ID <[email protected]>
Author: ronaldoussoren
Date: Tue Nov 11 04:52:58 2008
New Revision: 2023

Log:
Some more test updates, getting closer go proper test coverage....


Modified:
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbase.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdateformatter.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfpropertylist.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfrunloop.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstream.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cftimezone.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfurl.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfusernotification.py

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbase.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbase.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbase.py	Tue Nov 11 04:52:58 2008
@@ -1,10 +1,144 @@
 import unittest
 from CoreFoundation import *
+import CoreFoundation
 
 
 class TestBase (unittest.TestCase):
-    def testDummy(self):
-        self.fail("CFBase tests not implemented yet")
+    def testConstants(self):
+        self.assertEquals(TRUE, 1)
+        self.assertEquals(FALSE, 0)
+
+        self.assertEquals(kCFCoreFoundationVersionNumber10_0,      196.40)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_0_3,    196.50)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_1,      226.00)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_1_1,    226.00)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_1_2,    227.20)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_1_3,    227.20)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_1_4,    227.30)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_2,      263.00)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_2_1,    263.10)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_2_2,    263.10)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_2_3,    263.30)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_2_4,    263.30)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_2_5,    263.50)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_2_6,    263.50)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_2_7,    263.50)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_2_8,    263.50)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_3,      299.00)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_3_1,    299.00)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_3_2,    299.00)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_3_3,    299.30)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_3_4,    299.31)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_3_5,    299.31)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_3_6,    299.32)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_3_7,    299.33)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_3_8,    299.33)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_3_9,    299.35)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4,      368.00)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_1,    368.10)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_2,    368.11)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_3,    368.18)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_4_Intel,      368.26)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_4_PowerPC,    368.25)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_5_Intel,      368.26)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_5_PowerPC,    368.25)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_6_Intel,      368.26)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_6_PowerPC,    368.25)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_7,    368.27)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_8,    368.27)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_9,    368.28)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_10,   368.28)
+        self.assertEquals(kCFCoreFoundationVersionNumber10_4_11,   368.31)
+
+        self.assertEquals(kCFCompareLessThan, -1)
+        self.assertEquals(kCFCompareEqualTo, 0)
+        self.assertEquals(kCFCompareGreaterThan, 1)
+
+        self.assertEquals(kCFNotFound, -1)
+
+
+    def testStructs(self):
+
+        o = CFRange()
+        self.failUnless(hasattr(o, 'location'))
+        self.failUnless(hasattr(o, 'length'))
+
+    def testCFRangeMake(self):
+        r = CFRangeMake(42, 99)
+        self.failUnless(isinstance(r, CFRange))
+        self.assertEquals(r.location, 42)
+        self.assertEquals(r.length, 99)
+
+    def testCFNull(self):
+        self.failUnless(isinstance(CFNullGetTypeID(), (int, long)))
+
+        self.failUnless(isinstance(kCFNull, CFNullRef))
+
+    def testCFAllocator(self):
+        self.failUnless(isinstance(CFAllocatorGetTypeID(), (int, long)))
+
+        self.failUnless(isinstance(kCFAllocatorDefault, (CFAllocatorRef, type(None))))
+        self.failUnless(isinstance(kCFAllocatorSystemDefault, CFAllocatorRef))
+        self.failUnless(isinstance(kCFAllocatorMalloc, CFAllocatorRef))
+        self.failUnless(isinstance(kCFAllocatorMallocZone, CFAllocatorRef))
+        self.failUnless(isinstance(kCFAllocatorNull, CFAllocatorRef))
+        self.failUnless(isinstance(kCFAllocatorUseContext, CFAllocatorRef))
+
+        r = CFAllocatorGetDefault()
+        self.failUnless(isinstance(r, CFAllocatorRef))
+
+        CFAllocatorSetDefault(kCFAllocatorMalloc)
+        r2 = CFAllocatorGetDefault()
+        self.failUnless(isinstance(r2, CFAllocatorRef))
+        self.failUnless(r2 is kCFAllocatorMalloc)
+
+        # Restore default allocator
+        CFAllocatorSetDefault(r)
+
+        self.failIf(hasattr(CoreFoundation, 'CFAllocatorCreate'))
+        self.failIf(hasattr(CoreFoundation, 'CFAllocatorAllocate'))
+        self.failIf(hasattr(CoreFoundation, 'CFAllocatorReallocate'))
+        self.failIf(hasattr(CoreFoundation, 'CFAllocatorDeallocate'))
+        self.failIf(hasattr(CoreFoundation, 'CFAllocatorGetContext'))
+
+        r = CFAllocatorGetPreferredSizeForSize(kCFAllocatorDefault, 15, 0)
+        self.failUnless(isinstance(r, (int, long)))
+        self.failUnless(r >= 15)
+
+
+    def testGenericFunctions(self):
+        id = CFGetTypeID(kCFAllocatorMalloc)
+        self.assertEquals(id, CFAllocatorGetTypeID())
+
+        v = CFCopyTypeIDDescription(CFAllocatorGetTypeID())
+        self.failUnless(isinstance(v, unicode))
+
+        obj = CFURLCreateWithString(None, u"http://www.apple.com/", None)
+        i = CFGetRetainCount(obj)
+        self.failUnless(isinstance(i, (int, long)))
+        CFRetain(obj)
+        self.assertEquals(CFGetRetainCount(obj), i + 1)
+        CFRelease(obj)
+        self.assertEquals(CFGetRetainCount(obj), i)
+
+        CFRetain(obj)
+        CFMakeCollectable(obj)
+
+        del obj
+
+        i = CFEqual(kCFAllocatorMalloc, kCFAllocatorNull)
+        self.failUnless(i is False)
+        i = CFEqual(kCFAllocatorMalloc, kCFAllocatorMalloc)
+        self.failUnless(i is True)
+
+        i = CFHash(kCFAllocatorMalloc)
+        self.failUnless(i, (int, long))
+
+        v = CFCopyDescription(kCFAllocatorMalloc)
+        self.failUnless(isinstance(v, unicode))
+
+        v = CFGetAllocator(kCFAllocatorMalloc)
+        self.failUnless((v is None) or (isinstance(v, CFAllocatorRef)))
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdateformatter.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdateformatter.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdateformatter.py	Tue Nov 11 04:52:58 2008
@@ -93,12 +93,8 @@
 
         CFDateFormatterSetProperty(fmt, kCFDateFormatterIsLenient, True)
         v2 = CFDateFormatterCopyProperty(fmt, kCFDateFormatterIsLenient)
-        print v2
         self.failUnless(v2 is True)
         
 
-
-
-
 if __name__ == "__main__":
     unittest.main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfpropertylist.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfpropertylist.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfpropertylist.py	Tue Nov 11 04:52:58 2008
@@ -4,10 +4,6 @@
 
 class TestPropertyList (unittest.TestCase):
     def testFunctions(self):
-        # FIXME: this doesn't work as expected:
-        # dta = CFPropertyListCreateXMLData(None, {u"key": 42, u"key2": 1})
-
-
         dta = CFPropertyListCreateXMLData(None, {u"key": 42, u"key2": 1})
         self.failUnless(isinstance(dta, CFDataRef))
 
@@ -30,9 +26,37 @@
         self.failUnless(valid is True)
 
     def testStreams(self):
-        #CFPropertyListWriteToStream(CFPropertyListRef propertyList, CFWriteStreamRef stream, CFPropertyListFormat format, CFStringRef *errorString);
-        #CFPropertyListRef CFPropertyListCreateFromStream(CFAllocatorRef allocator, CFReadStreamRef stream, CFIndex streamLength, CFOptionFlags mutabilityOption, CFPropertyListFormat *format, CFStringRef *errorString);
-        self.fail("Implement stream related tests")
+
+        stream = CFWriteStreamCreateWithAllocatedBuffers(kCFAllocatorDefault, kCFAllocatorDefault)
+        r = CFWriteStreamOpen(stream)
+        self.failUnless(r)
+
+        value = {u'key1': 42, u'key2': 1}
+
+        rval, errorString = CFPropertyListWriteToStream(value, stream, 
+                kCFPropertyListXMLFormat_v1_0, None)
+        self.failUnless(isinstance(rval, (int, long)))
+        self.failUnless(rval)
+        self.failUnless(errorString is None)
+
+        buf = CFWriteStreamCopyProperty(stream, kCFStreamPropertyDataWritten)
+        self.failUnless(isinstance(buf, CFDataRef))
+        buf = CFDataGetBytes(buf, (0, CFDataGetLength(buf)), None)
+        self.failUnless(isinstance(buf, str))
+
+        self.failUnless('<key>key1</key>' in buf)
+        self.failUnless('<integer>42</integer>' in buf)
+        self.failUnless('<key>key2</key>' in buf)
+        self.failUnless('<integer>1</integer>' in buf)
+
+        stream = CFReadStreamCreateWithBytesNoCopy(None, buf, len(buf), kCFAllocatorNull)
+        r = CFReadStreamOpen(stream)
+        self.failUnless(r)
+
+        res, format, errorString = CFPropertyListCreateFromStream(None, stream, 0, 0, None, None)
+        self.assertEquals(format, kCFPropertyListXMLFormat_v1_0)
+        self.failUnless(errorString is None)
+        self.assertEquals(res, value)
 
 
 

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfrunloop.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfrunloop.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfrunloop.py	Tue Nov 11 04:52:58 2008
@@ -3,9 +3,6 @@
 
 
 class TestRunLoop (unittest.TestCase):
-    def testDummy(self):
-        self.fail("CFRunLoop tests not implemented yet")
-
 
     def testConstants(self):
         self.failUnless(kCFRunLoopRunFinished == 1)
@@ -57,29 +54,32 @@
         CFRunLoopWakeUp(loop)
         CFRunLoopStop(loop)
 
-        # CFRunLoopRun
-        # CFRunLoopRunInMode
+        res = CFRunLoopRunInMode("mode", 2.0, True)
+        self.failUnless(isinstance(res, (int, long)))
+        self.assertEquals(res, kCFRunLoopRunFinished)
+
+        #CFRunLoopRun()
+        self.fail("cfrunloop tests")
 
     def testObserver(self):
         #CF_EXPORT Boolean CFRunLoopContainsObserver(CFRunLoopRef rl, CFRunLoopObserverRef observer, CFStringRef mode);
         #CF_EXPORT void CFRunLoopAddObserver(CFRunLoopRef rl, CFRunLoopObserverRef observer, CFStringRef mode);
         #CF_EXPORT void CFRunLoopRemoveObserver(CFRunLoopRef rl, CFRunLoopObserverRef observer, CFStringRef mode);
-        pass
+        self.fail("cfrunloopobserver tests")
 
 
     def testTimer(self):
         #CF_EXPORT Boolean CFRunLoopContainsTimer(CFRunLoopRef rl, CFRunLoopTimerRef timer, CFStringRef mode);
         #CF_EXPORT void CFRunLoopAddTimer(CFRunLoopRef rl, CFRunLoopTimerRef timer, CFStringRef mode);
         #CF_EXPORT void CFRunLoopRemoveTimer(CFRunLoopRef rl, CFRunLoopTimerRef timer, CFStringRef mode);
-        pass
+        self.fail("cftimer tests")
 
     def testSource(self):
         #CF_EXPORT Boolean CFRunLoopContainsSource(CFRunLoopRef rl, CFRunLoopSourceRef source, CFStringRef mode);
         #CF_EXPORT void CFRunLoopAddSource(CFRunLoopRef rl, CFRunLoopSourceRef source, CFStringRef mode);
         #CF_EXPORT void CFRunLoopRemoveSource(CFRunLoopRef rl, CFRunLoopSourceRef source, CFStringRef mode);
 
-        pass
-
+        self.fail("cfrunloopsource tests")
 
 
 

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstream.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstream.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstream.py	Tue Nov 11 04:52:58 2008
@@ -1,11 +1,9 @@
 import unittest
 from CoreFoundation import *
+import errno, time, os, socket
 
 
 class TestStream (unittest.TestCase):
-    def testDummy(self):
-        self.fail("CFStream tests not implemented yet")
-
     def testConstants(self):
         self.failUnless(kCFStreamStatusNotOpen == 0)
         self.failUnless(kCFStreamStatusOpening == 1)
@@ -27,13 +25,285 @@
         self.failUnless(kCFStreamErrorDomainPOSIX == 1)
         self.failUnless(kCFStreamErrorDomainMacOSStatus == 2)
 
+        self.failUnless(isinstance(kCFStreamPropertyDataWritten, unicode))
         self.failUnless(isinstance(kCFStreamPropertyAppendToFile, unicode))
         self.failUnless(isinstance(kCFStreamPropertyFileCurrentOffset, unicode))
         self.failUnless(isinstance(kCFStreamPropertySocketNativeHandle, unicode))
         self.failUnless(isinstance(kCFStreamPropertySocketRemoteHostName, unicode))
         self.failUnless(isinstance(kCFStreamPropertySocketRemotePortNumber, unicode))
 
+    def testStructs(self):
+        o = CFStreamError()
+        self.failUnless(hasattr(o, 'domain'))
+        self.failUnless(hasattr(o, 'error'))
+
+
+    def testGetTypeID(self):
+        v = CFReadStreamGetTypeID()
+        self.failUnless(isinstance(v, (int, long)))
+        
+        v = CFWriteStreamGetTypeID()
+        self.failUnless(isinstance(v, (int, long)))
+
+    def testReadStream(self):
+        strval = "hello world"
+        stream = CFReadStreamCreateWithBytesNoCopy(None,
+                strval, len(strval), kCFAllocatorNull)
+        self.failUnless(isinstance(stream, CFReadStreamRef))
+
+        r, buf = CFReadStreamRead(stream, None, 10)
+        self.assertEquals(r, -1)
+        self.assertEquals(buf, '')
+
+        err  = CFReadStreamCopyError(stream)
+        self.failUnless(err is None or isinstance(err, CFErrorRef))
+
+        status = CFReadStreamGetStatus(stream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusNotOpen)
+
+        r = CFReadStreamOpen(stream)
+        self.failUnless(r is True)
+
+        status = CFReadStreamGetStatus(stream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusOpen)
+
+        r = CFReadStreamHasBytesAvailable(stream)
+        self.failUnless(r is True)
+
+        r, buf = CFReadStreamRead(stream, None, 5)
+        self.assertEquals(r, 5)
+        self.assertEquals(buf, "hello")
+
+        r, buf = CFReadStreamRead(stream, None, 10)
+        self.assertEquals(r, 6)
+        self.assertEquals(buf, " world")
+
+        r = CFReadStreamHasBytesAvailable(stream)
+        self.failUnless(r is False)
+
+        r = CFReadStreamClose(stream)
+        self.failUnless(r is None)
+        status = CFReadStreamGetStatus(stream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusClosed)
+
+
+        del stream
+
+        stream = CFReadStreamCreateWithFile(None, 
+                    CFURLCreateWithString(None, u"file:///etc/shells", None))
+        self.failUnless(isinstance(stream, CFReadStreamRef))
+        r = CFReadStreamOpen(stream)
+        self.failUnless(r is True)
+
+        status = CFReadStreamGetStatus(stream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusOpen)
+
+        r, buf = CFReadStreamRead(stream, None, 5)
+        self.assertEquals(r, 5)
+        self.failUnless(isinstance(buf, str))
+
+        buf, numBytes = CFReadStreamGetBuffer(stream, 20, None)
+        if buf is objc.NULL:
+            self.assertEquals(numBytes, 0)
+        else:
+            self.failUnless(isinstance(buf, str))
+            self.assertEquals(numBytes, len(buf))
+
+        val = CFReadStreamCopyProperty(stream, kCFStreamPropertyFileCurrentOffset)
+        self.assertEquals(val, 5)
+
+        r = CFReadStreamSetProperty(stream, kCFStreamPropertyFileCurrentOffset, 10)
+        self.failUnless(r is True)
+        val = CFReadStreamCopyProperty(stream, kCFStreamPropertyFileCurrentOffset)
+        self.assertEquals(val, 10)
+
+        err = CFReadStreamGetError(stream)
+        self.failUnless(isinstance(err, CFStreamError))
+        self.failUnless(err.domain == 0)
+        self.failUnless(err.error == 0)
+        
+
+    def testWriteStream(self):
+        import array
+        a = array.array('c', " "*20)
+
+        stream = CFWriteStreamCreateWithBuffer(None, a, 20)
+        self.failUnless(isinstance(stream, CFWriteStreamRef))
+
+        r = CFWriteStreamOpen(stream)
+        self.failUnless(r is True)
+
+        status = CFWriteStreamGetStatus(stream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusOpen)
+
+        b = CFWriteStreamCanAcceptBytes(stream)
+        self.failUnless(b is True)
+
+        n = CFWriteStreamWrite(stream, "0123456789ABCDE", 15)
+        self.assertEquals(n, 15)
+
+        self.assertEquals(a[0], '0')
+        self.assertEquals(a[1], '1')
+        self.assertEquals(a[9], '9')
+
+        n = CFWriteStreamWrite(stream, "0123456789ABCDE", 15)
+        self.assertEquals(n, -1)
+
+        err = CFWriteStreamCopyError(stream)
+        self.failUnless(isinstance(err, CFErrorRef))
+
+        err = CFWriteStreamGetError(stream)
+        self.failUnless(isinstance(err, CFStreamError))
+        self.failUnless(err.domain == kCFStreamErrorDomainPOSIX)
+        self.failUnless(err.error == errno.ENOMEM)
+
+
+        status = CFWriteStreamGetStatus(stream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusError)
+
+
+        del stream
+
+
+        stream = CFWriteStreamCreateWithAllocatedBuffers(None, None)
+        self.failUnless(isinstance(stream, CFWriteStreamRef))
+
+        r = CFWriteStreamOpen(stream)
+        self.failUnless(r is True)
+
+        n = CFWriteStreamWrite(stream, "0123456789ABCDE", 15)
+        self.assertEquals(n, 15)
+
+        buf = CFWriteStreamCopyProperty(stream, kCFStreamPropertyDataWritten)
+        self.failUnless(isinstance(buf, CFDataRef))
+        buf = CFDataGetBytes(buf, (0, CFDataGetLength(buf)), None)
+        self.failUnless(isinstance(buf, str))
+        self.assertEquals(buf, '0123456789ABCDE')
+
+        CFWriteStreamClose(stream)
+        status = CFWriteStreamGetStatus(stream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusClosed)
+
+        del stream
+
+
+        stream = CFWriteStreamCreateWithFile(None, 
+                CFURLCreateWithString(None, u"file:///tmp/pyobjc.test.txt", None))
+        self.failUnless(isinstance(stream, CFWriteStreamRef))
+
+        r = CFWriteStreamOpen(stream)
+        self.failUnless(r is True)
+
+        n = CFWriteStreamWrite(stream, "0123456789ABCDE", 15)
+        self.assertEquals(n, 15)
+
+        val = CFReadStreamCopyProperty(stream, kCFStreamPropertyFileCurrentOffset)
+        self.assertEquals(val, 15)
+
+        r = CFReadStreamSetProperty(stream, kCFStreamPropertyFileCurrentOffset, 10)
+        self.failUnless(r is True)
+        val = CFReadStreamCopyProperty(stream, kCFStreamPropertyFileCurrentOffset)
+        self.assertEquals(val, 10)
+
+        CFWriteStreamClose(stream)
+        status = CFWriteStreamGetStatus(stream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusClosed)
+
+        data = open('/tmp/pyobjc.test.txt', 'rb').read()
+        self.assertEquals(data, '0123456789ABCDE')
+        os.unlink('/tmp/pyobjc.test.txt')
+
+    def testStreamPair(self):
+        readStream, writeStream = CFStreamCreateBoundPair(None, None, None, 1024*1024)
+        self.failUnless(isinstance(readStream, CFReadStreamRef))
+        self.failUnless(isinstance(writeStream, CFWriteStreamRef))
+
+        # Make sure we actually have streams instead of random pointers.
+        status = CFReadStreamGetStatus(readStream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusNotOpen)
+
+        status = CFWriteStreamGetStatus(writeStream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusNotOpen)
+
+        del readStream, writeStream
+
+    def testSockets(self):
+        sd = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
+        sd.connect(('www.apple.com', 80))
+
+        readStream, writeStream = CFStreamCreatePairWithSocket(None,
+                sd.fileno(), None, None)
+
+        status = CFReadStreamGetStatus(readStream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusNotOpen)
+
+        status = CFWriteStreamGetStatus(writeStream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusNotOpen)
+
+        del readStream, writeStream, sd
+
+        readStream, writeStream = CFStreamCreatePairWithSocketToHost(None,
+                "www.apple.com", 80, None, None)
+
+        status = CFReadStreamGetStatus(readStream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusNotOpen)
+
+        status = CFWriteStreamGetStatus(writeStream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusNotOpen)
+
+        del readStream, writeStream
+
+
+        # Note: I don't expect anyone to actually use this api, building
+        # struct sockaddr buffers by hand is madness in python.
+        ip = socket.gethostbyname('www.apple.com')
+        ip = map(int, ip.split('.'))
+
+        import struct
+        sockaddr = struct.pack('>BBHBBBB', 16, socket.AF_INET, 80, *ip)
+
+        signature = CFSocketSignature(
+                protocolFamily=socket.AF_INET,
+                socketType=socket.SOCK_STREAM,
+                protocol=0,
+                address=buffer(sockaddr))
+
+        readStream, writeStream = CFStreamCreatePairWithPeerSocketSignature(
+                None, signature, None, None)
+
+        status = CFReadStreamGetStatus(readStream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusNotOpen)
+
+        status = CFWriteStreamGetStatus(writeStream)
+        self.failUnless(isinstance(status, (int, long)))
+        self.assertEquals(status, kCFStreamStatusNotOpen)
+
+    def testReadSocketASync(self):
+        # CFReadStreamSetClient
+        # CFReadStreamScheduleWithRunLoop
+        #CFReadStreamUnscheduleFromRunLoop
+        self.fail("read socket async")
 
+    def testWriteSocketAsync(self):
+        # CFWriteStreamSetClient
+        # CFWriteStreamScheduleWithRunLoop
+        #CFWriteStreamUnscheduleFromRunLoop
+        self.fail("write socket async")
 
 
 if __name__ == "__main__":

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cftimezone.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cftimezone.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cftimezone.py	Tue Nov 11 04:52:58 2008
@@ -38,7 +38,7 @@
 
         newmap = NSDictionary.dictionaryWithDictionary_({
                 NSString.stringWithString_('AAA'):
-                    NSString.stringWithString_('Europe/Amseterdam')})
+                    NSString.stringWithString_('Europe/Amsterdam')})
         v = CFTimeZoneSetAbbreviationDictionary(newmap)
         self.failUnless(v is None)
 

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfurl.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfurl.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfurl.py	Tue Nov 11 04:52:58 2008
@@ -5,10 +5,6 @@
 
 
 class TestURL (unittest.TestCase):
-    def testDummy(self):
-        self.fail("CFURL tests not implemented yet")
-
-
     def testTypeID(self):
         val = CFURLGetTypeID()
         self.failUnless( isinstance(val, (int, long)) )
@@ -40,12 +36,12 @@
 
         data = CFURLCreateData(None, ref, kCFStringEncodingUTF8, False)
         self.failUnless( isinstance(data, CFDataRef) )
-        val = str(data)
+        val = CFDataGetBytes(data, (0, CFDataGetLength(data)), None)
         self.assertEquals(val, url.replace(' ', '%20'))
 
         data = CFURLCreateData(None, ref, kCFStringEncodingUTF8, True)
         self.failUnless( isinstance(data, CFDataRef) )
-        val = str(data)
+        val = CFDataGetBytes(data, (0, CFDataGetLength(data)), None)
         self.assertEquals(val, url.replace(' ', '%20'))
 
     def testCreateWithString(self):
@@ -98,51 +94,175 @@
         self.failUnless( CFURLGetString(abs) == u"http://www.omroep.nl/sport" )
 
     def testPaths(self):
-        # CFURLCreateWithFileSystemPath
-        # CFURLCreateFromFileSystemRepresentation
-        # CFURLCreateWithFileSystemPathRelativeToBase
-        # CFURLCreateFromFileSystemRepresentationRelativeToBase
-        # CFURLGetFileSystemRepresentation
-        pass
+        url = CFURLCreateWithFileSystemPath(None,
+                u"/tmp/", kCFURLPOSIXPathStyle, True)
+        self.failUnless( isinstance(url, CFURLRef) )
+        self.failUnless(CFURLHasDirectoryPath(url))
+
+        url = CFURLCreateWithFileSystemPath(None,
+                u"/etc/hosts", kCFURLPOSIXPathStyle, False)
+        self.failUnless( isinstance(url, CFURLRef) )
+        self.failIf(CFURLHasDirectoryPath(url))
+
+        p = os.path.expanduser('~')
+        url = CFURLCreateFromFileSystemRepresentation(None,
+                p, len(p), True)
+        self.failUnless( isinstance(url, CFURLRef))
+        self.assertRaises((ValueError, TypeError),
+            CFURLCreateFromFileSystemRepresentation, None,
+                u"/tmp/", 4, True)
+
+        base = CFURLCreateWithFileSystemPath(None,
+                u"/tmp", kCFURLPOSIXPathStyle, True)
+        self.failUnless( isinstance(base, CFURLRef) )
+
+        url = CFURLCreateWithFileSystemPathRelativeToBase(None,
+                u"filename", kCFURLPOSIXPathStyle, True, base)
+        self.failUnless( isinstance(url, CFURLRef) )
+
+        strval =  CFURLGetString(url)
+        self.assertEquals(strval, u"filename/")
+
+
+        url = CFURLCreateFromFileSystemRepresentationRelativeToBase(None,
+                "filename2", 9, False, base)
+        self.failUnless( isinstance(url, CFURLRef) )
+        strval =  CFURLGetString(url)
+        self.assertEquals(strval, u"filename2")
+
+        ok, strval = CFURLGetFileSystemRepresentation(url, True, None, 100)
+        self.failUnless(ok)
+
+        # Unfortunately metadata doesn't allow describing what we actually need
+        if '\0' in strval:
+            strval = strval[:strval.index('\0')]
+        self.assertEquals(strval, u"/tmp/filename2")
 
     def testParts(self):
-        # CFURLGetBaseURL
-        # CFURLCanBeDecomposed
-        # CFURLCopyScheme
-        # CFURLCopyNetLocation
-        # CFURLCopyPath
-        # CFURLCopyStrictPath
-        # CFURLCopyFileSystemPath
-        # CFURLHasDirectoryPath
-        # CFURLCopyResourceSpecifier
-        # CFURLCopyHostName
-        # CFURLGetPortNumber
-        # CFURLCopyUserName
-        # CFURLCopyPassword
-        # CFURLCopyParameterString
-        # CFURLCopyQueryString
-        # CFURLCopyFragment
-        # CFURLCopyLastPathComponent
-        # CFURLCopyPathExtension
-        # CFURLGetBytes
-        # CFURLGetByteRangeForComponent
+        base = CFURLCreateWithString(None, u"http://www.omroep.nl/", None)
+        self.failUnless( isinstance(base, CFURLRef) )
+
+        ref = CFURLCreateWithString(None, u"/sport", base)
+        self.failUnless( isinstance(ref, CFURLRef) )
+
+        self.assertEquals(CFURLGetBaseURL(base), None)
+        self.assertEquals(CFURLGetBaseURL(ref), base)
+        self.assert_(CFURLCanBeDecomposed(ref) is True)
+
+        self.assertEquals(CFURLCopyScheme(ref), u"http")
+        self.assertEquals(CFURLCopyNetLocation(ref), u"www.omroep.nl")
+        self.assertEquals(CFURLCopyPath(ref), u"/sport")
+
+        path, isDir = CFURLCopyStrictPath(ref, None)
+        self.assertEquals(path, u"sport")
+        self.assertEquals(isDir, True)
+
+        path = CFURLCopyFileSystemPath(ref, kCFURLPOSIXPathStyle)
+        self.assertEquals(path, u"/sport")
+
+        path = CFURLCopyFileSystemPath(ref, kCFURLPOSIXPathStyle)
+        self.assertEquals(path, u"/sport")
+        path = CFURLCopyFileSystemPath(ref, kCFURLWindowsPathStyle)
+        self.assertEquals(path, u"\\sport")
+
+        self.failIf(CFURLHasDirectoryPath(ref))
+
+        v =  CFURLCopyResourceSpecifier(ref)
+        self.assertEquals(v, None)
 
-        pass
+        v =  CFURLCopyHostName(ref)
+        self.assertEquals(v, "www.omroep.nl")
+
+        v =  CFURLGetPortNumber(ref)
+        self.assertEquals(v, -1)
+
+        ref = CFURLCreateWithString(None, u"https://ronald:[email protected]:42/sport/results.cgi?qs=1#anchor", None)
+        v =  CFURLGetPortNumber(ref)
+        self.assertEquals(v, 42)
+
+        v = CFURLCopyResourceSpecifier(ref)
+        self.assertEquals(v, u"?qs=1#anchor")
+
+        v = CFURLCopyUserName(ref)
+        self.assertEquals(v, "ronald")
+
+        v = CFURLCopyPassword(ref)
+        self.assertEquals(v, "test")
+
+        v = CFURLCopyParameterString(ref, None)
+        self.assertEquals(v, None)
+
+        v = CFURLCopyQueryString(ref, None)
+        self.assertEquals(v, "qs=1")
+
+        v = CFURLCopyLastPathComponent(ref)
+        self.assertEquals(v, "results.cgi")
+
+        v = CFURLCopyPathExtension(ref)
+        self.assertEquals(v, "cgi")
+
+        cnt, bytes = CFURLGetBytes(ref, None, 100)
+        self.assertEquals(cnt, 62)
+        self.assertEquals(bytes, 
+                "https://ronald:[email protected]:42/sport/results.cgi?qs=1#anchor")
+
+        cnt, bytes = CFURLGetBytes(ref, objc.NULL, 0)
+        self.assertEquals(cnt, 62)
+        self.assertEquals(bytes, objc.NULL)
+
+        rng1, rng2 = CFURLGetByteRangeForComponent(ref, kCFURLComponentHost, None)
+        self.assert_(isinstance(rng1, CFRange))
+        self.assert_(isinstance(rng2, CFRange))
         
 
     def testUpdating(self):
-        # CFURLCreateCopyAppendingPathComponent
-        # CFURLCreateCopyDeletingLastPathComponent
-        # CFURLCreateCopyAppendingPathExtension
-        # CFURLCreateCopyDeletingPathExtension
-        pass
+        base = CFURLCreateWithString(None, u"http://www.omroep.nl/sport", None)
+        self.failUnless( isinstance(base, CFURLRef) )
+
+        url = CFURLCreateCopyAppendingPathComponent(None, base, "soccer", True)
+        self.failUnless( isinstance(url, CFURLRef) )
+
+        strval =  CFURLGetString(url)
+        self.assertEquals(strval, "http://www.omroep.nl/sport/soccer/")
+
+        url = CFURLCreateCopyDeletingLastPathComponent(None, base)
+        self.failUnless( isinstance(url, CFURLRef) )
+        strval =  CFURLGetString(url)
+        self.assertEquals(strval, "http://www.omroep.nl/")
+
+        url = CFURLCreateCopyAppendingPathExtension(None, base, "cgi")
+        self.failUnless( isinstance(url, CFURLRef) )
+        strval =  CFURLGetString(url)
+        self.assertEquals(strval, "http://www.omroep.nl/sport.cgi")
+
+        url2 = CFURLCreateCopyDeletingPathExtension(None, base)
+        self.failUnless( isinstance(url2, CFURLRef) )
+        strval =  CFURLGetString(url2)
+        self.assertEquals(strval, "http://www.omroep.nl/sport")
 
     def testStringEncoding(self):
-        # CFURLGetString
-        # CFURLCreateStringByReplacingPercentEscapes
-        # CFURLCreateStringByReplacingPercentEscapesUsingEncoding
-        # CFURLCreateStringByAddingPercentEscapes
-        pass
+        base = u"http://www.omroep.nl/sport%20en%20%73%70el"
+
+        strval = CFURLCreateStringByReplacingPercentEscapes(None, base, objc.NULL)
+        self.assertEquals(strval, "http://www.omroep.nl/sport%20en%20%73%70el")
+
+        strval = CFURLCreateStringByReplacingPercentEscapes(None, base, "")
+        self.assertEquals(strval, "http://www.omroep.nl/sport en spel")
+
+        strval = CFURLCreateStringByReplacingPercentEscapes(None, base, " ")
+        self.assertEquals(strval, "http://www.omroep.nl/sport%20en%20spel")
+
+        strval = CFURLCreateStringByReplacingPercentEscapesUsingEncoding(None, base, "", kCFStringEncodingISOLatin1)
+        self.assertEquals(strval, "http://www.omroep.nl/sport en spel")
+
+        
+        base = u"http://www.omroep.nl/sport en spel"
+        strval = CFURLCreateStringByAddingPercentEscapes(None, base, "", "",
+                kCFStringEncodingISOLatin1)
+        self.assertEquals(strval, u"http://www.omroep.nl/sport%20en%20spel")
+        strval = CFURLCreateStringByAddingPercentEscapes(None, base, " ", "s",
+                kCFStringEncodingISOLatin1)
+        self.assertEquals(strval, u"http://www.omroep.nl/%73port en %73pel")
 
     def testFSRef(self):
         try:

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfusernotification.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfusernotification.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfusernotification.py	Tue Nov 11 04:52:58 2008
@@ -42,7 +42,7 @@
         self.failUnless(error == 0)
 
         error = CFUserNotificationCancel(ref)
-        self.failUnless(error == 0)
+        self.assertEquals(error, 0)
         
         v = CFUserNotificationGetResponseValue(ref, kCFUserNotificationTextFieldValuesKey, 0)
         self.failUnless(v is None or isinstance(v, unicode))

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.