[PyObjC-svn] r2023 - trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest
[email protected] Tue, 11 Nov 2008 04:52:58 -0600
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=/