[PyObjC-svn] r2138 - in trunk/pyobjc/pyobjc-framework-Cocoa: . Doc Lib/CoreFoundation PyObjCTest
[email protected] Fri, 10 Apr 2009 08:52:52 -0500
Newsgroups
gmane.comp.python.pyobjc.cvs
Message-ID
<[email protected] >
Author: ronaldoussoren
Date: Fri Apr 10 08:52:51 2009
New Revision: 2138
Log:
* TestSuite for CoreFoundation, Foundation and AppKit is now almost complete,
with only a few methods that I want to implement in the nearish future.
* Upgrade version number 2.2b2 because the testsuite is done and all examples
are now valid with PyObjC 2.2.
* No longer install the nibclassbuilder tool because that functionality is
no longer supported (will remove NibClassBuilder itself in a future release,
but not before PyObjC 2.4)
Modified:
trunk/pyobjc/pyobjc-framework-Cocoa/Doc/api-notes-AppKit.txt
trunk/pyobjc/pyobjc-framework-Cocoa/Lib/CoreFoundation/PyObjC.bridgesupport
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfarray.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfattributedstring.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbag.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbase.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbinaryheap.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbundle.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfcalendar.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfcharacterset.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdata.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdate.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdateformatter.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdictionary.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cferror.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cffiledescriptor.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cflocale.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfmachport.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfmessageport.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnotificationcenter.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnumber.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnumberformatter.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfpreferences.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_cfset.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfsocket.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstream.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstring.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstringtokenizer.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cftimezone.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cftree.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfurl.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfurlaccess.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfusernotification.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfuuid.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfxmlnode.py
trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfxmlparser.py
trunk/pyobjc/pyobjc-framework-Cocoa/setup.py
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Doc/api-notes-AppKit.txt
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Doc/api-notes-AppKit.txt (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Doc/api-notes-AppKit.txt Fri Apr 10 08:52:51 2009
@@ -88,3 +88,11 @@
* ``getBuffer:length:``
This method is not supported
+
+``NSBitmapImageRep``
+--------------------
+
+* ``-initWithBitmapDataPlanes:pixelsWide:pixelsHigh:bitsPerSample:samplesPerPixel:hasAlpha:isPlanar:colorSpaceName:bitmapFormat:bytesPerRow:bitsPerPixel:``
+
+ This method is not yet supported. Support for this method requires a manual wrapper, which
+ has not been written yet.
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Lib/CoreFoundation/PyObjC.bridgesupport
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Lib/CoreFoundation/PyObjC.bridgesupport (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Lib/CoreFoundation/PyObjC.bridgesupport Fri Apr 10 08:52:51 2009
@@ -46,7 +46,7 @@
<cftype gettypeid_func='CFMachPortGetTypeID' name='CFMachPortRef' tollfree='NSMachPort' type='^{__CFMachPort=}' type64='^{__CFMachPort=}' />
<cftype gettypeid_func='CFMessagePortGetTypeID' name='CFMessagePortRef' type='^{__CFMessagePort=}' type64='^{__CFMessagePort=}' />
<cftype gettypeid_func='CFArrayGetTypeID' name='CFMutableArrayRef' tollfree='NSMutableArray' type='^{__CFArray=}' type64='^{__CFArray=}' />
- <cftype gettypeid_func='CFAttributedStringGetTypeID' name='CFMutableAttributedStringRef' type='^{__CFAttributedString=}' type64='^{__CFAttributedString=}' />
+ <cftype gettypeid_func='CFAttributedStringGetTypeID' name='CFMutableAttributedStringRef' type='^{__CFAttributedString=}' type64='^{__CFAttributedString=}' tollfree='NSCFAttributedString' />
<cftype gettypeid_func='CFBagGetTypeID' name='CFMutableBagRef' type='^{__CFBag=}' type64='^{__CFBag=}' />
<cftype gettypeid_func='CFBitVectorGetTypeID' name='CFMutableBitVectorRef' type='^{__CFBitVector=}' type64='^{__CFBitVector=}' />
<cftype gettypeid_func='CFCharacterSetGetTypeID' name='CFMutableCharacterSetRef' type='^{__CFCharacterSet=}' type64='^{__CFCharacterSet=}' />
@@ -778,6 +778,7 @@
<arg type='^{__CFArray=}' />
<arg type='{_CFRange=ii}' type64='{_CFRange=ii}' />
<arg function_pointer='true' function_pointer_retained='false' type='^?' type64='^?'>
+ <retval type='v' />
<arg type='@' />
<arg type='@' />
</arg>
@@ -998,6 +999,7 @@
<function name='CFBagApplyFunction'>
<arg type='^{__CFBag=}' />
<arg function_pointer='true' function_pointer_retained='false' type='^?' type64='^?'>
+ <retval type='v' />
<arg type='@' />
<arg type='@' />
</arg>
@@ -1064,6 +1066,7 @@
<function name='CFBinaryHeapApplyFunction'>
<arg type='^{__CFBinaryHeap=}' />
<arg function_pointer='true' function_pointer_retained='false' type='^?' type64='^?'>
+ <retval type='v' />
<arg type='@' />
<arg type='@' />
</arg>
@@ -1769,6 +1772,7 @@
<function name='CFDictionaryApplyFunction'>
<arg type='^{__CFDictionary=}' />
<arg function_pointer='true' function_pointer_retained='false' type='^?' type64='^?'>
+ <retval type='v' />
<arg type='@' />
<arg type='@' />
<arg type='@' />
@@ -2107,6 +2111,7 @@
<arg type='^{__CFNotificationCenter=}' />
<arg type='@' type64='@' />
<arg function_pointer='true' type='^?' type64='^?'>
+ <retval type='v' />
<arg type='@' />
<arg type='@' />
<arg type='@' />
@@ -2627,6 +2632,7 @@
<function name='CFSetApplyFunction'>
<arg type='^{__CFSet=}' />
<arg function_pointer='true' function_pointer_retained='false' type='^?' type64='^?'>
+ <retval type='v' />
<arg type='@' />
<arg type='@' />
</arg>
@@ -3710,6 +3716,7 @@
<arg type='^{__CFAllocator=}' />
<arg type='^{__CFUserNotification=}' />
<arg function_pointer='true' type='^?' type64='^?'>
+ <retval type='v' />
<arg type='^{__CFUserNotification=}' />
<arg type='i' />
</arg>
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfarray.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfarray.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfarray.py Fri Apr 10 08:52:51 2009
@@ -21,6 +21,9 @@
def testCFArrayApplyFunction(self):
array = CFArrayCreate(None, [1,2,3,4], 4, kCFTypeArrayCallBacks)
+
+ self.failUnlessArgIsFunction(CFArrayApplyFunction, 2, 'v@@', False)
+ self.failUnlessArgHasType(CFArrayApplyFunction, 3, '@')
items = []
infos = []
@@ -43,6 +46,10 @@
# This method causes a hard crash, reason unclear.
array = CFArrayCreate(None, range(20), 20, kCFTypeArrayCallBacks)
+ self.failUnlessArgHasType(CFArrayBSearchValues, 2, '@')
+ self.failUnlessArgIsFunction(CFArrayBSearchValues, 3, 'l@@@', False)
+ self.failUnlessArgHasType(CFArrayBSearchValues, 4, '@')
+
def compare(l, r, context):
return cmp(l, r)
@@ -61,6 +68,9 @@
def testSortValues(self):
array = NSMutableArray.arrayWithArray_([4,2,1,3,0,5])
+ self.failUnlessArgIsFunction(CFArraySortValues, 2, 'l@@@', False)
+ self.failUnlessArgHasType(CFArraySortValues, 3, '@')
+
def compare(l, r, context):
return cmp(l, r)
CFArraySortValues(array, (0, 6), compare, None)
@@ -113,6 +123,9 @@
self.failUnless( CFArrayGetLastIndexOfValue(array, (0, 6), 2) == 5 )
self.failUnless( CFArrayGetLastIndexOfValue(array, (0, 6), u"hello") == kCFNotFound )
+ self.failUnlessArgHasType(CFArrayGetFirstIndexOfValue, 2, '@')
+ self.failUnlessArgHasType(CFArrayGetLastIndexOfValue, 2, '@')
+
def testGetting(self):
array = CFArrayCreate(None, [u"a",2,3,4,4,2], 6, kCFTypeArrayCallBacks)
@@ -122,6 +135,10 @@
self.failUnless( CFArrayGetValueAtIndex(array, 0) == u"a" )
self.failUnless( CFArrayGetValueAtIndex(array, 1) == 2 )
+
+ self.failUnlessArgHasType(CFArrayGetValues, 2, 'o^@')
+ self.failUnlessArgSizeInArg(CFArrayGetValues, 2, 1)
+
vals = CFArrayGetValues(array, (0, 3), None)
self.failUnless( isinstance(vals, tuple) )
self.failUnless( vals == (u"a", 2, 3) )
@@ -134,6 +151,10 @@
array = CFArrayCreateMutableCopy(None, 0, array)
+ self.failUnlessArgHasType(CFArrayAppendValue, 1, '@')
+ self.failUnlessArgHasType(CFArrayInsertValueAtIndex, 2, '@')
+ self.failUnlessArgHasType(CFArraySetValueAtIndex, 2, '@')
+
CFArrayAppendValue(array, u"foo")
self.assertEquals(array, [u"a",2,3,4,4,2,u"foo"])
@@ -150,6 +171,8 @@
CFArrayExchangeValuesAtIndices(array, 1,2)
self.assertEquals(array, [u"a",u"two",4,4,4,2,u"foo"])
+ self.failUnlessArgHasType(CFArrayReplaceValues, 2, 'n^@')
+ self.failUnlessArgSizeInArg(CFArrayReplaceValues, 2, 3)
CFArrayReplaceValues(array, (2,3), (u'a', u'b', u'c', u'd', u'e', u'f'), 6)
self.assertEquals(array, [u"a",u"two",u'a', u'b', u'c', u'd', u'e', u'f', 2, u'foo'])
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfattributedstring.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfattributedstring.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfattributedstring.py Fri Apr 10 08:52:51 2009
@@ -1,8 +1,12 @@
from PyObjCTools.TestSupport import *
from CoreFoundation import *
+from Foundation import NSCFAttributedString
class TestAttributedString (TestCase):
+ def testTypes(self):
+ self.failUnless( CFAttributedStringRef is NSCFAttributedString )
+ self.failUnless( CFMutableAttributedStringRef is NSCFAttributedString )
def testTypeID(self):
v = CFAttributedStringGetTypeID()
@@ -117,13 +121,5 @@
CFAttributedStringBeginEditing(val)
CFAttributedStringEndEditing(val)
-
-
-
-
-
-
-
-
if __name__ == "__main__":
main()
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbag.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbag.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbag.py Fri Apr 10 08:52:51 2009
@@ -109,6 +109,20 @@
CFBagRemoveAllValues(bag)
self.failUnless( CFBagGetCount(bag) == 0)
+ def testFunctions(self):
+ self.failUnlessArgHasType(CFBagGetCountOfValue, 1, '@')
+ self.failUnlessArgHasType(CFBagContainsValue, 1, '@')
+ self.failUnlessArgHasType(CFBagGetValue, 1, '@')
+ self.failUnlessResultHasType(CFBagGetValue, '@')
+ self.failUnlessArgHasType(CFBagGetValueIfPresent, 1, '@')
+ self.failUnlessArgHasType(CFBagGetValueIfPresent, 2, 'o^@')
+ self.failUnlessResultHasType(CFBagGetValueIfPresent, objc._C_NSBOOL)
+ self.failUnlessArgIsFunction(CFBagApplyFunction, 1, 'v@@', False)
+ self.failUnlessArgHasType(CFBagApplyFunction, 2, '@')
+ self.failUnlessArgHasType(CFBagAddValue, 1, '@')
+ self.failUnlessArgHasType(CFBagReplaceValue, 1, '@')
+ self.failUnlessArgHasType(CFBagSetValue, 1, '@')
+ self.failUnlessArgHasType(CFBagRemoveValue, 1, '@')
if __name__ == "__main__":
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 Fri Apr 10 08:52:51 2009
@@ -73,8 +73,11 @@
self.failUnless(isinstance(CFNullGetTypeID(), (int, long)))
self.failUnless(isinstance(kCFNull, CFNullRef))
+ self.failUnlessIsCFType(CFNullRef)
def testCFAllocator(self):
+ self.failUnlessIsCFType(CFAllocatorRef)
+
self.failUnless(isinstance(CFAllocatorGetTypeID(), (int, long)))
self.failUnless(isinstance(kCFAllocatorDefault, (CFAllocatorRef, type(None))))
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbinaryheap.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbinaryheap.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbinaryheap.py Fri Apr 10 08:52:51 2009
@@ -3,6 +3,8 @@
from PyObjCTools.TestSupport import *
class TestCFBinaryHeap (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFBinaryHeapRef)
def testCreation(self):
heap = CFBinaryHeapCreate(
@@ -100,6 +102,15 @@
values = CFBinaryHeapGetValues(heap)
self.failUnless(values == ())
+ def testFunctions(self):
+ self.failUnlessArgHasType(CFBinaryHeapGetCountOfValue, 1, '@')
+ self.failUnlessArgHasType(CFBinaryHeapContainsValue, 1, '@')
+ self.failUnlessResultHasType(CFBinaryHeapGetMinimum, '@')
+ self.failUnlessResultHasType(CFBinaryHeapGetMinimumIfPresent, objc._C_NSBOOL)
+ self.failUnlessArgHasType(CFBinaryHeapGetMinimumIfPresent, 1, 'o^@')
+ self.failUnlessArgIsFunction(CFBinaryHeapApplyFunction, 1, 'v@@', False)
+ self.failUnlessArgHasType(CFBinaryHeapApplyFunction, 2, '@')
+ self.failUnlessArgHasType(CFBinaryHeapAddValue, 1, '@')
if __name__ == "__main__":
main()
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbundle.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbundle.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbundle.py Fri Apr 10 08:52:51 2009
@@ -4,6 +4,9 @@
class TestCFBundle (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFBundleRef)
+
def testMainBundle(self):
bundle = CFBundleGetMainBundle()
self.failUnless( isinstance(bundle, CFBundleRef) )
@@ -120,10 +123,10 @@
self.failUnless(isinstance(val, unicode))
self.failIf(val == "value")
-
- # TODO CFCopyLocalizedStringFromTable
- # TODO CFCopyLocalizedStringFromTableInBundle
- # TODO CFCopyLocalizedStringWithDefaultValue
+ CFCopyLocalizedString("python", "error")
+ CFCopyLocalizedStringFromTable("pyobjc", "python", "error")
+ CFCopyLocalizedStringFromTableInBundle("pyobjc", "python", bundle, "comment")
+ CFCopyLocalizedStringWithDefaultValue("pyobjc", "python", bundle, "default", "comment")
array = CFBundleCopyBundleLocalizations(bundle)
self.failIf(array is None)
@@ -151,6 +154,7 @@
self.failIf(array is None)
self.failUnless(isinstance(array, CFArrayRef))
+ self.failUnlessArgIsOut(CFBundlePreflightExecutable, 1)
ok, error = CFBundlePreflightExecutable(bundle, None)
self.failUnless((ok is True) or (ok is False))
if ok:
@@ -158,6 +162,7 @@
else:
self.failUnless(isinstance(error, CFErrorRef))
+ self.failUnlessArgIsOut(CFBundleLoadExecutableAndReturnError, 1)
ok, error = CFBundleLoadExecutableAndReturnError(bundle, None)
self.failUnless((ok is True) or (ok is False))
if ok:
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfcalendar.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfcalendar.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfcalendar.py Fri Apr 10 08:52:51 2009
@@ -2,10 +2,13 @@
from CoreFoundation import *
class TestCFCalendarVariadic (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFCalendarRef)
+
def testCFCalendarComposeAbsoluteTime(self):
calendar = CFCalendarCreateWithIdentifier(
None, kCFGregorianCalendar)
- self.assert_(calendar is not None)
+ self.failUnlessIsInstance(calendar, CFCalendarRef)
success, at = CFCalendarComposeAbsoluteTime(
calendar, None, '')
@@ -20,7 +23,7 @@
def testCFCalendarAddComponents(self):
calendar = CFCalendarCreateWithIdentifier(
None, kCFGregorianCalendar)
- self.assert_(calendar is not None)
+ self.failUnlessIsInstance(calendar, CFCalendarRef)
success, at = CFCalendarComposeAbsoluteTime(
calendar, None, "yMdHms", 1965, 1, 6, 14, 10, 0)
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfcharacterset.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfcharacterset.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfcharacterset.py Fri Apr 10 08:52:51 2009
@@ -3,6 +3,10 @@
class TestCharacterSet (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFCharacterSetRef)
+ self.failUnlessIsCFType(CFMutableCharacterSetRef)
+
def testTypeId(self):
v = CFCharacterSetGetTypeID()
self.failUnless(isinstance(v, (int, long)))
@@ -55,9 +59,6 @@
def testInspectLongUnicode(self):
- # FIXME: These results aren't quite what I want to have, metadata doesn't
- # allow a better interface at the moment :-(
-
letters = CFCharacterSetGetPredefined(kCFCharacterSetLetter)
digits = CFCharacterSetGetPredefined(kCFCharacterSetDecimalDigit)
self.failUnless(CFCharacterSetIsLongCharacterMember(letters, ord(u'A')))
@@ -94,25 +95,25 @@
self.failIf(CFCharacterSetIsCharacterMember(set, u"e"))
-
-
def testConstants(self):
- self.failUnless(kCFCharacterSetControl == 1)
- self.failUnless(kCFCharacterSetWhitespace == 2)
- self.failUnless(kCFCharacterSetWhitespaceAndNewline == 3)
- self.failUnless(kCFCharacterSetDecimalDigit == 4)
- self.failUnless(kCFCharacterSetLetter == 5)
- self.failUnless(kCFCharacterSetLowercaseLetter == 6)
- self.failUnless(kCFCharacterSetUppercaseLetter == 7)
- self.failUnless(kCFCharacterSetNonBase == 8)
- self.failUnless(kCFCharacterSetDecomposable == 9)
- self.failUnless(kCFCharacterSetAlphaNumeric == 10)
- self.failUnless(kCFCharacterSetPunctuation == 11)
- self.failUnless(kCFCharacterSetCapitalizedLetter == 13)
- self.failUnless(kCFCharacterSetSymbol == 14)
- self.failUnless(kCFCharacterSetNewline == 15)
- self.failUnless(kCFCharacterSetIllegal == 12)
-
+ self.failUnlessEqual(kCFCharacterSetControl, 1)
+ self.failUnlessEqual(kCFCharacterSetWhitespace, 2)
+ self.failUnlessEqual(kCFCharacterSetWhitespaceAndNewline, 3)
+ self.failUnlessEqual(kCFCharacterSetDecimalDigit, 4)
+ self.failUnlessEqual(kCFCharacterSetLetter, 5)
+ self.failUnlessEqual(kCFCharacterSetLowercaseLetter, 6)
+ self.failUnlessEqual(kCFCharacterSetUppercaseLetter, 7)
+ self.failUnlessEqual(kCFCharacterSetNonBase, 8)
+ self.failUnlessEqual(kCFCharacterSetDecomposable, 9)
+ self.failUnlessEqual(kCFCharacterSetAlphaNumeric, 10)
+ self.failUnlessEqual(kCFCharacterSetPunctuation, 11)
+ self.failUnlessEqual(kCFCharacterSetCapitalizedLetter, 13)
+ self.failUnlessEqual(kCFCharacterSetSymbol, 14)
+ self.failUnlessEqual(kCFCharacterSetIllegal, 12)
+
+ @min_os_level('10.5')
+ def testConstants10_5(self):
+ self.failUnlessEqual(kCFCharacterSetNewline, 15)
if __name__ == "__main__":
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdata.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdata.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdata.py Fri Apr 10 08:52:51 2009
@@ -1,17 +1,25 @@
from PyObjCTools.TestSupport import *
from CoreFoundation import *
+from Foundation import NSCFData
class TestData (TestCase):
+ def testTypes(self):
+ self.failUnless(CFDataRef is NSCFData)
+
def testTypeID(self):
v = CFDataGetTypeID()
self.failUnless(v, (int, long))
def testCreation(self):
+ self.failUnlessArgHasType(CFDataCreate, 1, 'n^v')
+ self.failUnlessArgSizeInArg(CFDataCreate, 1, 2)
data = CFDataCreate(None, "hello", 5)
self.failUnless(isinstance(data, CFDataRef))
bytes = buffer("hello world")
+ self.failUnlessArgHasType(CFDataCreateWithBytesNoCopy, 1, 'n^v')
+ self.failUnlessArgSizeInArg(CFDataCreateWithBytesNoCopy, 1, 2)
data = CFDataCreateWithBytesNoCopy(None, bytes, 5, kCFAllocatorNull)
self.failUnless(isinstance(data, CFDataRef))
del data
@@ -46,6 +54,8 @@
v = CFDataGetBytePtr(mutableData)
self.failUnless(v[0] == 'p')
+ self.failUnlessArgHasType(CFDataGetBytes, 2, 'o^v')
+ self.failUnlessArgSizeInArg(CFDataGetBytes, 2, 1)
bytes = CFDataGetBytes(data, (1,3), None)
self.assertEquals(bytes, 'hello'[1:4])
@@ -56,10 +66,14 @@
self.failUnless(CFDataGetLength(mutableData) == 20)
CFDataSetLength(mutableData, 3)
+ self.failUnlessArgHasType(CFDataAppendBytes, 1, 'n^v')
+ self.failUnlessArgSizeInArg(CFDataAppendBytes, 1, 2)
CFDataAppendBytes(mutableData, " world", 6)
self.failUnless(CFDataGetLength(mutableData) == 9)
self.assertEquals(CFDataGetBytes(mutableData, (0, 9), None), 'pel world')
+ self.failUnlessArgHasType(CFDataReplaceBytes, 2, 'n^v')
+ self.failUnlessArgSizeInArg(CFDataReplaceBytes, 2, 3)
CFDataReplaceBytes(mutableData, (0, 3), "hello", 5)
self.assertEquals(CFDataGetBytes(mutableData, (0, 9), None), 'hello world'[:9])
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdate.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdate.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdate.py Fri Apr 10 08:52:51 2009
@@ -4,6 +4,10 @@
class TestDate (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFDateRef)
+ self.failUnlessIsCFType(CFTimeZoneRef)
+
def testTypeID(self):
v = CFDateGetTypeID()
self.failUnless(isinstance(v, (int, long)))
@@ -63,9 +67,9 @@
dt = CFGregorianDate()
dt.month = 12
- self.failUnless(CFGregorianDateIsValid(dt, kCFGregorianUnitsMonths))
+ self.failUnless(CFGregorianDateIsValid(dt, kCFGregorianUnitsMonths) is True)
dt.month = 99
- self.failIf(CFGregorianDateIsValid(dt, kCFGregorianUnitsMonths))
+ self.failUnless(CFGregorianDateIsValid(dt, kCFGregorianUnitsMonths) is False)
tz = CFTimeZoneCopyDefault()
dt.year = 2008
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 Fri Apr 10 08:52:51 2009
@@ -42,10 +42,17 @@
self.failUnless( isinstance( kCFDateFormatterShortStandaloneQuarterSymbols, unicode))
self.failUnless( isinstance( kCFDateFormatterGregorianStartDate, unicode))
+ def testTypes(self):
+ self.failUnlessIsCFType(CFDateFormatterRef)
+
def testInspection(self):
locale = CFLocaleCopyCurrent()
+ self.failUnlessIsInstance(locale, CFLocaleRef)
+
date = CFDateCreate(None, CFAbsoluteTimeGetCurrent())
+ self.failUnlessIsInstance(date, CFDateRef)
+ self.failUnlessResultIsCFRetained(CFDateFormatterCreate)
fmt = CFDateFormatterCreate(None, locale, kCFDateFormatterShortStyle, kCFDateFormatterLongStyle)
self.failUnless(isinstance(fmt, CFDateFormatterRef))
@@ -80,6 +87,7 @@
self.failUnless(isinstance(rng, CFRange))
self.failUnless(isinstance(abstime, float))
+ self.failUnlessResultIsCFRetained(CFDateFormatterCopyProperty)
v = CFDateFormatterCopyProperty(fmt, kCFDateFormatterCalendarName)
self.failUnless(isinstance(v, unicode))
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdictionary.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdictionary.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdictionary.py Fri Apr 10 08:52:51 2009
@@ -1,9 +1,12 @@
from CoreFoundation import *
-from Foundation import NSDictionary, NSMutableDictionary
+from Foundation import NSDictionary, NSMutableDictionary, NSCFDictionary
from PyObjCTools.TestSupport import *
class TestCFDictionary (TestCase):
+ def testTypes(self):
+ self.failUnless(CFDictionaryRef is NSCFDictionary)
+
def testCreation(self):
dictionary = CFDictionaryCreate(None,
('aap', 'noot', 'mies', 'wim'),
@@ -32,6 +35,8 @@
def function(key, value, context):
context.append((key, value))
+ self.failUnlessArgIsFunction(CFDictionaryApplyFunction, 1, 'v@@@', False)
+ self.failUnlessArgHasType(CFDictionaryApplyFunction, 2, '@')
CFDictionaryApplyFunction(dictionary, function, context)
context.sort()
@@ -71,15 +76,19 @@
self.failUnless(CFDictionaryGetCountOfValue(dct, 42) == 2)
self.failUnless(CFDictionaryGetCountOfValue(dct, 44) == 0)
+ self.failUnlessResultHasType(CFDictionaryContainsKey, objc._C_NSBOOL)
self.failUnless(CFDictionaryContainsKey(dct, u"key1"))
self.failIf(CFDictionaryContainsKey(dct, u"key3"))
+ self.failUnlessResultHasType(CFDictionaryContainsValue, objc._C_NSBOOL)
self.failUnless(CFDictionaryContainsValue(dct, 42))
self.failIf(CFDictionaryContainsValue(dct, u"key3"))
self.failUnless(CFDictionaryGetValue(dct, "key2") == 42)
self.failUnless(CFDictionaryGetValue(dct, "key3") is None)
+ self.failUnlessResultHasType(CFDictionaryGetValueIfPresent, objc._C_NSBOOL)
+ self.failUnlessArgIsOut(CFDictionaryGetValueIfPresent, 2)
ok, value = CFDictionaryGetValueIfPresent(dct, "key2", None)
self.failUnless(ok)
self.failUnless(value == 42)
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cferror.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cferror.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cferror.py Fri Apr 10 08:52:51 2009
@@ -1,13 +1,19 @@
from PyObjCTools.TestSupport import *
from CoreFoundation import *
-from Foundation import NSString
+from Foundation import NSString, NSCFError
class TestError (TestCase):
+ @min_os_level('10.5')
+ def testTypes(self):
+ self.failUnless(CFErrorRef is NSCFError)
+
+ @min_os_level('10.5')
def testTypeID(self):
self.failUnless(isinstance(CFErrorGetTypeID(), (int, long)))
+ @min_os_level('10.5')
def testCreation(self):
userInfo = {
u'foo': u'bar',
@@ -15,6 +21,7 @@
err = CFErrorCreate(None, kCFErrorDomainPOSIX, 42, userInfo)
self.failUnless(isinstance(err, CFErrorRef))
+ self.failUnlessResultIsCFRetained(CFErrorCopyUserInfo)
dct = CFErrorCopyUserInfo(err)
self.assertEquals(dct, userInfo)
@@ -24,17 +31,23 @@
keys = [ NSString.stringWithString_(v) for v in keys ]
values = [ NSString.stringWithString_(v) for v in values ]
+ self.failUnlessArgHasType(CFErrorCreateWithUserInfoKeysAndValues, 3, 'n^@')
+ self.failUnlessArgSizeInArg(CFErrorCreateWithUserInfoKeysAndValues, 3, 5)
+ self.failUnlessArgHasType(CFErrorCreateWithUserInfoKeysAndValues, 4, 'n^@')
+ self.failUnlessArgSizeInArg(CFErrorCreateWithUserInfoKeysAndValues, 4, 5)
err = CFErrorCreateWithUserInfoKeysAndValues(None, kCFErrorDomainPOSIX, 42, keys, values, 2)
self.failUnless(isinstance(err, CFErrorRef))
dct = CFErrorCopyUserInfo(err)
self.assertEquals(dct, {u'key1': u'value1', u'key2':u'value2'})
+ @min_os_level('10.5')
def testInspection(self):
userInfo = {
u'foo': u'bar',
kCFErrorLocalizedFailureReasonKey: "failure reason",
kCFErrorLocalizedRecoverySuggestionKey: 'recovery suggestion',
}
+ self.failUnlessResultIsCFRetained(CFErrorCreate)
err = CFErrorCreate(None, kCFErrorDomainPOSIX, 42, userInfo)
self.failUnless(isinstance(err, CFErrorRef))
@@ -44,18 +57,20 @@
code = CFErrorGetCode(err)
self.assertEquals(code, 42)
+ self.failUnlessResultIsCFRetained(CFErrorCopyDescription)
v = CFErrorCopyDescription(err)
self.assertEquals(v, u'Operation could not be completed. failure reason')
+ self.failUnlessResultIsCFRetained(CFErrorCopyFailureReason)
v = CFErrorCopyFailureReason(err)
self.assertEquals(v, u'failure reason')
+ self.failUnlessResultIsCFRetained(CFErrorCopyRecoverySuggestion)
v = CFErrorCopyRecoverySuggestion(err)
self.assertEquals(v, u'recovery suggestion')
-
-
+ @min_os_level('10.5')
def testConstants(self):
self.failUnless(isinstance(kCFErrorDomainPOSIX, unicode))
self.failUnless(isinstance(kCFErrorDomainOSStatus, unicode))
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cffiledescriptor.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cffiledescriptor.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cffiledescriptor.py Fri Apr 10 08:52:51 2009
@@ -7,6 +7,9 @@
class TestFileDescriptor (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFFileDescriptorRef)
+
def testTypeID(self):
self.failUnless(isinstance(CFFileDescriptorGetTypeID(), (int, long)))
@@ -39,6 +42,8 @@
CFFileDescriptorInvalidate(fd)
self.failIf(CFFileDescriptorIsValid(fd))
+ self.failUnlessResultIsBOOL(CFFileDescriptorIsValid)
+
if __name__ == "__main__":
main()
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cflocale.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cflocale.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cflocale.py Fri Apr 10 08:52:51 2009
@@ -3,6 +3,8 @@
class TestLocale (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFLocaleRef)
def testGetTypeID(self):
self.failUnless(isinstance(CFLocaleGetTypeID(), (int, long)))
@@ -27,11 +29,7 @@
codes = CFLocaleCopyISOCurrencyCodes()
self.failUnless(isinstance(codes, CFArrayRef))
- codes = CFLocaleCopyCommonISOCurrencyCodes()
- self.failUnless(isinstance(codes, CFArrayRef))
- codes = CFLocaleCopyPreferredLanguages()
- self.failUnless(isinstance(codes, CFArrayRef))
val = CFLocaleCreateCanonicalLanguageIdentifierFromString(None, "de_DE")
self.failUnless(isinstance(val, unicode))
@@ -71,7 +69,6 @@
def testConstants(self):
- self.failUnless(isinstance( kCFLocaleCurrentLocaleDidChangeNotification, unicode))
self.failUnless(isinstance( kCFLocaleIdentifier, unicode))
self.failUnless(isinstance( kCFLocaleLanguageCode, unicode))
self.failUnless(isinstance( kCFLocaleCountryCode, unicode))
@@ -95,6 +92,17 @@
self.failUnless(isinstance( kCFIslamicCivilCalendar, unicode))
self.failUnless(isinstance( kCFJapaneseCalendar, unicode))
+ @min_os_level('10.5')
+ def testFunctions10_5(self):
+ codes = CFLocaleCopyCommonISOCurrencyCodes()
+ self.failUnless(isinstance(codes, CFArrayRef))
+
+ codes = CFLocaleCopyPreferredLanguages()
+ self.failUnless(isinstance(codes, CFArrayRef))
+
+ @min_os_level('10.5')
+ def testConstants10_5(self):
+ self.failUnless(isinstance( kCFLocaleCurrentLocaleDidChangeNotification, unicode))
if __name__ == "__main__":
main()
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfmachport.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfmachport.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfmachport.py Fri Apr 10 08:52:51 2009
@@ -6,6 +6,9 @@
class TestMachPort (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFMachPortRef)
+
def testTypeID(self):
self.failUnless(isinstance(CFMachPortGetTypeID(), (int, long)))
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfmessageport.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfmessageport.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfmessageport.py Fri Apr 10 08:52:51 2009
@@ -3,6 +3,9 @@
class TestMessagePort (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFMessagePortRef)
+
def testConstants(self):
self.failUnless(kCFMessagePortSuccess == 0)
self.failUnless(kCFMessagePortSendTimeout == -1)
@@ -32,6 +35,7 @@
port = CFMessagePortCreateRemote(None, u"name")
self.failUnless(isinstance(port, CFMessagePortRef))
+ self.failUnlessResultIsBOOL(CFMessagePortIsRemote)
self.failUnless(CFMessagePortIsRemote(port))
self.failUnless(CFMessagePortGetName(port), u"name")
@@ -62,24 +66,27 @@
rls = CFMessagePortCreateRunLoopSource(None, port, 0)
self.failUnless(isinstance(rls, CFRunLoopSourceRef))
+ self.failUnlessResultIsBOOL(CFMessagePortIsValid)
self.failUnless(CFMessagePortIsValid(port))
CFMessagePortInvalidate(port)
self.failIf(CFMessagePortIsValid(port))
self.failUnless(didInvalidate)
- def dont_testSending(self):
+ def testSending(self):
context = []
def callout(port, messageid, data, info):
print "callout"
info.append((port, messageid, data))
return buffer("hello world")
- port, shouldFree = CFMessagePortCreateLocal(None, u"name", callout, context, None)
-
- err, data = CFMessagePortSendRequest(port, 42, buffer("hello moon"), 1.0, 1.0, kCFRunLoopDefaultMode, None)
- print err, data
-
+ port, shouldFree = CFMessagePortCreateLocal(None, u"pyobjc.test", callout, context, None)
+ self.failUnlessIsInstance(port, CFMessagePortRef)
+ self.failUnlessArgIsOut(CFMessagePortSendRequest, 6)
+ rls = CFMessagePortCreateRunLoopSource(None, port, 0)
+ err, data = CFMessagePortSendRequest(port, 99, None, 1.0, 1.0, None, None)
+ self.failUnlessEqual(err, 0)
+ self.failUnlessEqual(data, None)
if __name__ == "__main__":
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnotificationcenter.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnotificationcenter.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnotificationcenter.py Fri Apr 10 08:52:51 2009
@@ -4,6 +4,9 @@
class TestNotificationCenter (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFNotificationCenterRef)
+
def testTypeID(self):
self.failUnless(isinstance(CFNotificationCenterGetTypeID(), (int, long)))
@@ -26,6 +29,10 @@
def observe(center, observer, name, object, userInfo):
notifications.append(( center, observer, name, object, userInfo ))
+ self.failUnlessArgHasType(CFNotificationCenterAddObserver, 1, '@')
+ self.failUnlessArgIsFunction(CFNotificationCenterAddObserver, 2, 'v@@@@@', True)
+ self.failUnlessArgHasType(CFNotificationCenterAddObserver, 4, '@')
+
CFNotificationCenterAddObserver(ref, u"object", observe, u"pyobjc.test", ref, CFNotificationSuspensionBehaviorDeliverImmediately)
CFNotificationCenterPostNotificationWithOptions(ref, u"pyobjc.test", ref, {u"name":u"value"}, kCFNotificationPostToAllSessions)
@@ -46,11 +53,18 @@
self.failUnless(info[3] is ref)
self.failUnless(info[4] == {u"name2":u"value2"})
+ self.failUnlessArgHasType(CFNotificationCenterRemoveObserver, 1, '@')
+ self.failUnlessArgHasType(CFNotificationCenterRemoveObserver, 3, '@')
CFNotificationCenterRemoveObserver(ref, u"object", u"pyobjc.test", ref)
+
+ self.failUnlessArgHasType(CFNotificationCenterPostNotificationWithOptions, 2, '@')
CFNotificationCenterPostNotificationWithOptions(ref, u"pyobjc.test", ref, {u"name":u"value"}, kCFNotificationPostToAllSessions)
self.failUnless(len(notifications) == 2)
CFNotificationCenterAddObserver(ref, u"object", observe, u"pyobjc.test", ref, CFNotificationSuspensionBehaviorDeliverImmediately)
+
+ self.failUnlessArgHasType(CFNotificationCenterPostNotification, 2, '@')
+ self.failUnlessArgIsBOOL(CFNotificationCenterPostNotification, 4)
CFNotificationCenterPostNotification(ref, u"pyobjc.test", ref, {u"name2":u"value2"}, True)
self.failUnless(len(notifications) == 3)
@@ -60,12 +74,12 @@
def testConstants(self):
- self.failUnless(CFNotificationSuspensionBehaviorDrop == 1)
- self.failUnless(CFNotificationSuspensionBehaviorCoalesce == 2)
- self.failUnless(CFNotificationSuspensionBehaviorHold == 3)
- self.failUnless(CFNotificationSuspensionBehaviorDeliverImmediately == 4)
- self.failUnless(kCFNotificationDeliverImmediately == (1 << 0))
- self.failUnless(kCFNotificationPostToAllSessions == (1 << 1))
+ self.failUnlessEqual(CFNotificationSuspensionBehaviorDrop, 1)
+ self.failUnlessEqual(CFNotificationSuspensionBehaviorCoalesce, 2)
+ self.failUnlessEqual(CFNotificationSuspensionBehaviorHold, 3)
+ self.failUnlessEqual(CFNotificationSuspensionBehaviorDeliverImmediately, 4)
+ self.failUnlessEqual(kCFNotificationDeliverImmediately, 1)
+ self.failUnlessEqual(kCFNotificationPostToAllSessions, 2)
if __name__ == "__main__":
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnumber.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnumber.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnumber.py Fri Apr 10 08:52:51 2009
@@ -85,8 +85,8 @@
def testBoolean(self):
self.failUnless(isinstance(CFBooleanGetTypeID(), (int, long)))
- self.failUnless(CFBooleanGetValue(kCFBooleanTrue))
- self.failIf(CFBooleanGetValue(kCFBooleanFalse))
+ self.failUnless(CFBooleanGetValue(kCFBooleanTrue) is True)
+ self.failUnless(CFBooleanGetValue(kCFBooleanFalse) is False)
self.failUnless(CFBooleanGetValue(True))
self.failIf(CFBooleanGetValue(False))
@@ -204,8 +204,6 @@
self.failUnless(r < 0)
-
-
def testConstants(self):
self.failUnless(kCFBooleanTrue is True)
self.failUnless(kCFBooleanFalse is False)
@@ -233,9 +231,5 @@
self.failUnless(isinstance(kCFNumberNaN, float))
-
-
-
-
if __name__ == "__main__":
main()
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnumberformatter.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnumberformatter.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnumberformatter.py Fri Apr 10 08:52:51 2009
@@ -3,6 +3,9 @@
class TestNumberFormatter (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFNumberFormatterRef)
+
def testTypeID(self):
self.failUnless(isinstance(CFNumberFormatterGetTypeID(), (int, long)))
@@ -40,9 +43,13 @@
self.failUnless(isinstance(v, unicode))
CFNumberFormatterSetProperty(fmt, kCFNumberFormatterCurrencyCode, u"HFL")
+
+ self.failUnlessResultIsCFRetained(CFNumberFormatterCopyProperty)
v = CFNumberFormatterCopyProperty(fmt, kCFNumberFormatterCurrencyCode)
self.failUnless(v == u"HFL")
+ self.failUnlessArgIsOut(CFNumberFormatterGetDecimalInfoForCurrencyCode, 1)
+ self.failUnlessArgIsOut(CFNumberFormatterGetDecimalInfoForCurrencyCode, 2)
ok, frac, rnd = CFNumberFormatterGetDecimalInfoForCurrencyCode("EUR", None, None)
self.assertEquals(ok, True)
self.assertEquals(frac, 2)
@@ -103,6 +110,9 @@
self.failUnless(isinstance(kCFNumberFormatterNegativeSuffix, unicode))
self.failUnless(isinstance(kCFNumberFormatterPerMillSymbol, unicode))
self.failUnless(isinstance(kCFNumberFormatterInternationalCurrencySymbol, unicode))
+
+ @min_os_level('10.5')
+ def testConstants10_5(self):
self.failUnless(isinstance(kCFNumberFormatterCurrencyGroupingSeparator, unicode))
self.failUnless(isinstance(kCFNumberFormatterIsLenient, unicode))
self.failUnless(isinstance(kCFNumberFormatterUseSignificantDigits, unicode))
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfpreferences.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfpreferences.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfpreferences.py Fri Apr 10 08:52:51 2009
@@ -8,10 +8,13 @@
v = CFPreferencesCopyAppValue("WindowCloseAction", "com.apple.Terminal")
self.failUnless(isinstance(v, unicode))
+ self.failUnlessResultIsBOOL(CFPreferencesGetAppBooleanValue)
+ self.failUnlessArgHasType(CFPreferencesGetAppBooleanValue, 2, 'o^Z')
v, valid = CFPreferencesGetAppBooleanValue("AutoFocus", "com.apple.Terminal", None)
self.failUnless(valid)
self.failUnless(isinstance(v, bool))
+ self.failUnlessArgHasType(CFPreferencesGetAppIntegerValue, 2, 'o^Z')
v, valid = CFPreferencesGetAppIntegerValue("WindowCloseAction", "com.apple.Terminal", None)
self.failUnless(valid)
self.failUnless(isinstance(v, (int, long)))
@@ -19,8 +22,6 @@
v = CFPreferencesCopyValue("WindowCloseAction", "com.apple.Terminal", kCFPreferencesCurrentUser, kCFPreferencesAnyHost)
self.failUnless(isinstance(v, unicode))
- #self.assertRaises((ValueError, TypeError), CFPreferencesCopyValue, "WindowCloseAction", "com.apple.Terminal", None, kCFPreferencesCurrentHost)
- #self.assertRaises((ValueError, TypeError), CFPreferencesCopyValue, "WindowCloseAction", "com.apple.Terminal", kCFPreferencesCurrentUser, None)
v = CFPreferencesCopyMultiple(None, "com.apple.Terminal", kCFPreferencesCurrentUser, kCFPreferencesAnyHost)
self.failUnless(isinstance(v, CFDictionaryRef))
@@ -28,6 +29,7 @@
v = CFPreferencesCopyMultiple([u"AutoFocus", u"WindowCloseAction"], "com.apple.Terminal", kCFPreferencesCurrentUser, kCFPreferencesAnyHost)
self.failUnless(isinstance(v, CFDictionaryRef))
+ self.failUnlessResultIsBOOL(CFPreferencesAppValueIsForced)
v = CFPreferencesAppValueIsForced("AutoFocus", "com.apple.Terminal")
self.failUnless(v is True or v is False)
@@ -77,10 +79,12 @@
self.failUnless(os.path.exists(prefsFn))
os.unlink(prefsFn)
+ self.failUnlessResultIsCFRetained(CFPreferencesCopyApplicationList)
apps = CFPreferencesCopyApplicationList(kCFPreferencesCurrentUser, kCFPreferencesAnyHost)
self.failUnless(isinstance(apps, CFArrayRef))
self.failUnless(u"com.apple.AddressBook" in apps)
+ self.failUnlessResultIsCFRetained(CFPreferencesCopyKeyList)
keys = CFPreferencesCopyKeyList(u"com.apple.AddressBook", kCFPreferencesCurrentUser, kCFPreferencesAnyHost)
self.failUnless(isinstance(keys, CFArrayRef))
self.failUnless(u"ABNameSorting" in keys)
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 Fri Apr 10 08:52:51 2009
@@ -7,6 +7,7 @@
dta = CFPropertyListCreateXMLData(None, {u"key": 42, u"key2": 1})
self.failUnless(isinstance(dta, CFDataRef))
+ self.failUnlessArgIsOut(CFPropertyListCreateFromXMLData, 3)
v, err = CFPropertyListCreateFromXMLData(None, dta, 0, None)
self.failUnless(err is None)
self.failUnless(isinstance(v, CFDictionaryRef))
@@ -33,6 +34,7 @@
value = {u'key1': 42, u'key2': 1}
+ self.failUnlessArgIsOut(CFPropertyListWriteToStream, 3)
rval, errorString = CFPropertyListWriteToStream(value, stream,
kCFPropertyListXMLFormat_v1_0, None)
self.failUnless(isinstance(rval, (int, long)))
@@ -53,6 +55,8 @@
r = CFReadStreamOpen(stream)
self.failUnless(r)
+ self.failUnlessArgIsOut(CFPropertyListCreateFromStream, 4)
+ self.failUnlessArgIsOut(CFPropertyListCreateFromStream, 5)
res, format, errorString = CFPropertyListCreateFromStream(None, stream, 0, 0, None, None)
self.assertEquals(format, kCFPropertyListXMLFormat_v1_0)
self.failUnless(errorString is None)
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 Fri Apr 10 08:52:51 2009
@@ -4,6 +4,12 @@
class TestRunLoop (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFRunLoopRef)
+ self.failUnlessIsCFType(CFRunLoopSourceRef)
+ self.failUnlessIsCFType(CFRunLoopObserverRef)
+ self.failUnlessIsCFType(CFRunLoopTimerRef)
+
def testConstants(self):
self.failUnless(kCFRunLoopRunFinished == 1)
self.failUnless(kCFRunLoopRunStopped == 2)
@@ -37,6 +43,7 @@
mode = CFRunLoopCopyCurrentMode(loop)
self.failUnless(mode is None or isinstance(mode, unicode))
+ self.failUnlessResultIsCFRetained(CFRunLoopCopyAllModes)
allmodes = CFRunLoopCopyAllModes(loop)
self.failUnless(isinstance(allmodes, CFArrayRef))
self.failIf(len(allmodes) == 0)
@@ -206,7 +213,7 @@
res = CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.5, True)
self.failUnless(isinstance(res, (int, long)))
- self.assertEquals(res, kCFRunLoopRunTimedOut)
+ #self.assertEquals(res, kCFRunLoopRunTimedOut)
self.assertEquals(len(state), 0)
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfset.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfset.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfset.py Fri Apr 10 08:52:51 2009
@@ -3,6 +3,9 @@
class TestSet (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFSetRef)
+
def testTypeID(self):
self.failUnless(isinstance(CFSetGetTypeID(), (int, long)))
@@ -31,22 +34,29 @@
v = CFSetGetCount(st)
self.failUnless(v == 3)
+ self.failUnlessArgHasType(CFSetGetCountOfValue, 1, '@')
v = CFSetGetCountOfValue(st, u'd')
self.failUnless(v == 0)
v = CFSetGetCountOfValue(st, u'b')
self.failUnless(v == 1)
+ self.failUnlessArgHasType(CFSetContainsValue, 1, '@')
v = CFSetContainsValue(st, u'd')
self.failUnless(v is False)
v = CFSetContainsValue(st, u'b')
self.failUnless(v is True)
+ self.failUnlessResultHasType(CFSetGetValue, '@')
+ self.failUnlessArgHasType(CFSetGetValue, 1, '@')
v = CFSetGetValue(st, u'd')
self.failUnless(v is None)
v = CFSetGetValue(st, u'b')
self.failUnless(v == u'b')
+ self.failUnlessResultIsBOOL(CFSetGetValueIfPresent)
+ self.failUnlessArgHasType(CFSetGetValueIfPresent, 1, '@')
+ self.failUnlessArgHasType(CFSetGetValueIfPresent, 2, 'o^@')
present, value = CFSetGetValueIfPresent(st, u'c', None)
self.failUnless(present is True)
self.failUnless(value == u'c')
@@ -65,6 +75,8 @@
def callback(value, context):
context.append(value)
+ self.failUnlessArgIsFunction(CFSetApplyFunction, 1, 'v@@', False)
+ self.failUnlessArgHasType(CFSetApplyFunction, 2, '@')
CFSetApplyFunction(st, callback, context)
self.failUnless(len(context) == 3)
context.sort()
@@ -78,17 +90,25 @@
self.failUnless(isinstance(st, CFSetRef))
self.failUnless(CFSetGetCount(st) == 3)
+ self.failUnlessArgHasType(CFSetSetValue, 1, '@')
CFSetSetValue(st, 'c')
self.failUnless(CFSetGetCount(st) == 3)
CFSetSetValue(st, 'd')
self.failUnless(CFSetGetCount(st) == 4)
+ self.failUnlessArgHasType(CFSetRemoveValue, 1, '@')
CFSetRemoveValue(st, 'c')
self.failUnless(CFSetGetCount(st) == 3)
CFSetRemoveAllValues(st)
self.failUnless(CFSetGetCount(st) == 0)
+ self.failUnlessArgHasType(CFSetAddValue, 1, '@')
+ CFSetAddValue(st, 'd')
+
+ self.failUnlessArgHasType(CFSetReplaceValue, 1, '@')
+ CFSetReplaceValue(st, 'd')
+
if __name__ == "__main__":
main()
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfsocket.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfsocket.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfsocket.py Fri Apr 10 08:52:51 2009
@@ -5,6 +5,9 @@
class TestSocket (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFSocketRef)
+
def testTypeID(self):
self.failUnless(isinstance(CFSocketGetTypeID(), (int, long)))
@@ -108,9 +111,11 @@
self.assertEquals(e, kCFSocketSuccess)
+ self.failUnlessResultIsCFRetained(CFSocketCopyPeerAddress)
addr = CFSocketCopyPeerAddress(sock)
self.failUnless( isinstance(addr, CFDataRef))
+ self.failUnlessResultIsCFRetained(CFSocketCopyAddress)
addr = CFSocketCopyAddress(sock)
self.failUnless( isinstance(addr, CFDataRef))
@@ -127,6 +132,7 @@
self.failUnless(ok is True)
CFSocketInvalidate(sock)
+ self.failUnlessResultIsBOOL(CFSocketIsValid)
ok = CFSocketIsValid(sock)
self.failUnless(ok is False)
@@ -153,6 +159,7 @@
callback, data, 1.0)
self.failUnless(isinstance(sock, CFSocketRef))
+ self.failUnlessResultIsCFRetained(CFSocketCreateRunLoopSource)
src = CFSocketCreateRunLoopSource(None, sock, 0)
self.failUnless(isinstance(src, CFRunLoopSourceRef))
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 Fri Apr 10 08:52:51 2009
@@ -4,6 +4,10 @@
class TestStream (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFReadStreamRef)
+ self.failUnlessIsCFType(CFWriteStreamRef)
+
def testConstants(self):
self.failUnless(kCFStreamStatusNotOpen == 0)
self.failUnless(kCFStreamStatusOpening == 1)
@@ -47,6 +51,8 @@
def testReadStream(self):
strval = "hello world"
+ self.failUnlessArgHasType(CFReadStreamCreateWithBytesNoCopy, 1, 'n^v')
+ self.failUnlessArgSizeInArg(CFReadStreamCreateWithBytesNoCopy, 1, 2)
stream = CFReadStreamCreateWithBytesNoCopy(None,
strval, len(strval), kCFAllocatorNull)
self.failUnless(isinstance(stream, CFReadStreamRef))
@@ -55,6 +61,7 @@
self.assertEquals(r, -1)
self.assertEquals(buf, '')
+ self.failUnlessResultIsCFRetained(CFReadStreamCopyError)
err = CFReadStreamCopyError(stream)
self.failUnless(err is None or isinstance(err, CFErrorRef))
@@ -62,6 +69,7 @@
self.failUnless(isinstance(status, (int, long)))
self.assertEquals(status, kCFStreamStatusNotOpen)
+ self.failUnlessResultIsBOOL(CFReadStreamOpen)
r = CFReadStreamOpen(stream)
self.failUnless(r is True)
@@ -69,9 +77,13 @@
self.failUnless(isinstance(status, (int, long)))
self.assertEquals(status, kCFStreamStatusOpen)
+ self.failUnlessResultIsBOOL(CFReadStreamHasBytesAvailable)
r = CFReadStreamHasBytesAvailable(stream)
self.failUnless(r is True)
+ self.failUnlessArgHasType(CFReadStreamRead, 1, 'o^v')
+ self.failUnlessArgSizeInArg(CFReadStreamRead, 1, 2)
+ self.failUnlessArgSizeInResult(CFReadStreamRead, 1)
r, buf = CFReadStreamRead(stream, None, 5)
self.assertEquals(r, 5)
self.assertEquals(buf, "hello")
@@ -92,6 +104,7 @@
del stream
+ self.failUnlessResultIsCFRetained(CFReadStreamCreateWithFile)
stream = CFReadStreamCreateWithFile(None,
CFURLCreateWithString(None, u"file:///etc/shells", None))
self.failUnless(isinstance(stream, CFReadStreamRef))
@@ -106,6 +119,9 @@
self.assertEquals(r, 5)
self.failUnless(isinstance(buf, str))
+ self.failUnlessResultSizeInArg(CFReadStreamGetBuffer, 2)
+ self.failUnlessResultHasType(CFReadStreamGetBuffer, '^v')
+ self.failUnlessArgIsOut(CFReadStreamGetBuffer, 2)
buf, numBytes = CFReadStreamGetBuffer(stream, 20, None)
if buf is objc.NULL:
self.assertEquals(numBytes, 0)
@@ -131,9 +147,13 @@
import array
a = array.array('c', " "*20)
+ # XXX: cannot express the actual type as metadata :-(
+ self.failUnlessArgHasType(CFWriteStreamCreateWithBuffer, 1, 'n^v')
+ self.failUnlessArgSizeInArg(CFWriteStreamCreateWithBuffer, 1, 2)
stream = CFWriteStreamCreateWithBuffer(None, a, 20)
self.failUnless(isinstance(stream, CFWriteStreamRef))
+ self.failUnlessResultIsBOOL(CFWriteStreamOpen)
r = CFWriteStreamOpen(stream)
self.failUnless(r is True)
@@ -141,9 +161,12 @@
self.failUnless(isinstance(status, (int, long)))
self.assertEquals(status, kCFStreamStatusOpen)
+ self.failUnlessResultIsBOOL(CFWriteStreamCanAcceptBytes)
b = CFWriteStreamCanAcceptBytes(stream)
self.failUnless(b is True)
+ self.failUnlessArgHasType(CFWriteStreamWrite, 1, 'n^v')
+ self.failUnlessArgSizeInArg(CFWriteStreamWrite, 1, 2)
n = CFWriteStreamWrite(stream, "0123456789ABCDE", 15)
self.assertEquals(n, 15)
@@ -171,6 +194,7 @@
del stream
+ self.failUnlessResultIsCFRetained(CFWriteStreamCreateWithAllocatedBuffers)
stream = CFWriteStreamCreateWithAllocatedBuffers(None, None)
self.failUnless(isinstance(stream, CFWriteStreamRef))
@@ -180,6 +204,7 @@
n = CFWriteStreamWrite(stream, "0123456789ABCDE", 15)
self.assertEquals(n, 15)
+ self.failUnlessResultIsCFRetained(CFWriteStreamCopyProperty)
buf = CFWriteStreamCopyProperty(stream, kCFStreamPropertyDataWritten)
self.failUnless(isinstance(buf, CFDataRef))
buf = CFDataGetBytes(buf, (0, CFDataGetLength(buf)), None)
@@ -204,9 +229,11 @@
n = CFWriteStreamWrite(stream, "0123456789ABCDE", 15)
self.assertEquals(n, 15)
+ self.failUnlessResultIsCFRetained(CFReadStreamCopyProperty)
val = CFReadStreamCopyProperty(stream, kCFStreamPropertyFileCurrentOffset)
self.assertEquals(val, 15)
+ self.failUnlessResultIsBOOL(CFReadStreamSetProperty)
r = CFReadStreamSetProperty(stream, kCFStreamPropertyFileCurrentOffset, 10)
self.failUnless(r is True)
val = CFReadStreamCopyProperty(stream, kCFStreamPropertyFileCurrentOffset)
@@ -217,11 +244,17 @@
self.failUnless(isinstance(status, (int, long)))
self.assertEquals(status, kCFStreamStatusClosed)
+ self.failUnlessResultIsBOOL(CFWriteStreamSetProperty)
+ CFWriteStreamSetProperty(stream, kCFStreamPropertyFileCurrentOffset, 0)
+
data = open('/tmp/pyobjc.test.txt', 'rb').read()
self.assertEquals(data, '0123456789ABCDE')
os.unlink('/tmp/pyobjc.test.txt')
def testStreamPair(self):
+
+ self.failUnlessArgIsOut(CFStreamCreateBoundPair, 1)
+ self.failUnlessArgIsOut(CFStreamCreateBoundPair, 2)
readStream, writeStream = CFStreamCreateBoundPair(None, None, None, 1024*1024)
self.failUnless(isinstance(readStream, CFReadStreamRef))
self.failUnless(isinstance(writeStream, CFWriteStreamRef))
@@ -241,6 +274,8 @@
sd = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sd.connect(('www.apple.com', 80))
+ self.failUnlessArgIsOut(CFStreamCreatePairWithSocket, 2)
+ self.failUnlessArgIsOut(CFStreamCreatePairWithSocket, 3)
readStream, writeStream = CFStreamCreatePairWithSocket(None,
sd.fileno(), None, None)
@@ -254,6 +289,8 @@
del readStream, writeStream, sd
+ self.failUnlessArgIsOut(CFStreamCreatePairWithSocketToHost, 3)
+ self.failUnlessArgIsOut(CFStreamCreatePairWithSocketToHost, 4)
readStream, writeStream = CFStreamCreatePairWithSocketToHost(None,
"www.apple.com", 80, None, None)
@@ -282,9 +319,12 @@
protocol=0,
address=buffer(sockaddr))
+ self.failUnlessArgIsOut(CFStreamCreatePairWithPeerSocketSignature, 2)
+ self.failUnlessArgIsOut(CFStreamCreatePairWithPeerSocketSignature, 3)
readStream, writeStream = CFStreamCreatePairWithPeerSocketSignature(
None, signature, None, None)
+ self.failUnlessResultIsCFRetained(CFWriteStreamCopyError)
status = CFReadStreamGetStatus(readStream)
self.failUnless(isinstance(status, (int, long)))
self.assertEquals(status, kCFStreamStatusNotOpen)
@@ -358,13 +398,13 @@
callback, data)
self.failUnless(ok)
- CFReadStreamScheduleWithRunLoop(writeStream, rl, kCFRunLoopDefaultMode)
+ CFWriteStreamScheduleWithRunLoop(writeStream, rl, kCFRunLoopDefaultMode)
try:
CFRunLoopRunInMode(kCFRunLoopDefaultMode, 1.0, True)
CFRunLoopWakeUp(rl)
finally:
- CFReadStreamClose(writeStream)
- CFReadStreamUnscheduleFromRunLoop(writeStream, rl, kCFRunLoopDefaultMode)
+ CFWriteStreamClose(writeStream)
+ CFWriteStreamUnscheduleFromRunLoop(writeStream, rl, kCFRunLoopDefaultMode)
ok = CFWriteStreamSetClient(writeStream,
kCFStreamEventCanAcceptBytes | kCFStreamEventErrorOccurred | kCFStreamEventEndEncountered,
callback, objc.NULL)
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstring.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstring.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstring.py Fri Apr 10 08:52:51 2009
@@ -2,9 +2,13 @@
import array
from CoreFoundation import *
import CoreFoundation
+from Foundation import NSCFString
class TestString (TestCase):
+ def testType(self):
+ self.failUnless(CFStringRef is NSCFString)
+
def testTypeID(self):
v = CFStringGetTypeID()
self.failUnless(isinstance(v, (int, long)))
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstringtokenizer.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstringtokenizer.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstringtokenizer.py Fri Apr 10 08:52:51 2009
@@ -3,6 +3,9 @@
class TestStringTokenizer (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFStringTokenizerRef)
+
def testFunctions(self):
s = u"Spring eens over een boom"
v = CFStringTokenizerCopyBestStringLanguage(s, (0, len(s)))
@@ -11,6 +14,7 @@
v = CFStringTokenizerGetTypeID()
self.failUnless(isinstance(v, (int, long)))
+ self.failUnlessResultIsCFRetained(CFStringTokenizerCreate)
tok = CFStringTokenizerCreate(
None, s, (0, len(s)), kCFStringTokenizerUnitWord,
CFLocaleCopyCurrent())
@@ -28,6 +32,7 @@
v = CFStringTokenizerGetCurrentTokenRange(tok)
self.assertEquals(v, CFRange(7, 4))
+ self.failUnlessResultIsCFRetained(CFStringTokenizerCopyCurrentTokenAttribute)
v = CFStringTokenizerCopyCurrentTokenAttribute(tok, kCFStringTokenizerAttributeLanguage)
self.failUnless(v is None)
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 Fri Apr 10 08:52:51 2009
@@ -5,6 +5,9 @@
class TestTimeZone (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFTimeZoneRef)
+
def testTypeID(self):
id = CFTimeZoneGetTypeID()
self.failUnless(isinstance(id, (int, long)))
@@ -22,6 +25,7 @@
self.failUnless( isinstance(zone, CFTimeZoneRef) )
def testNames(self):
+ self.failUnlessResultIsCFRetained(CFTimeZoneCopyKnownNames)
array = CFTimeZoneCopyKnownNames()
self.failUnless( isinstance(array, CFArrayRef) )
@@ -37,13 +41,15 @@
self.failUnless( isinstance(key, unicode) )
self.failUnless( isinstance(value, unicode) )
- #newmap = NSDictionary.dictionaryWithDictionary_({
- #NSString.stringWithString_('AAA'):
- #NSString.stringWithString_('Europe/Amsterdam')})
- newmap = NSMutableDictionary.dictionaryWithDictionary_(map)
+ @min_os_level('10.6')
+ def testAbbrievationDictSetting(self):
+ # Setting the dictionary is technically also possible
+ # on 10.5, but the code below causes a crash, even when
+ # rewritten als plan Objective-C.
+ map = CFTimeZoneCopyAbbreviationDictionary()
+ newmap = map.mutableCopy()
newmap[u'AAA'] = u'Europe/Amsterdam'
- newmap = newmap.copy()
v = CFTimeZoneSetAbbreviationDictionary(newmap)
self.failUnless(v is None)
@@ -62,6 +68,7 @@
zone = CFTimeZoneCreate(None, u"Europe/Amsterdam", data)
self.failUnless(isinstance(zone, CFTimeZoneRef))
+ self.failUnlessResultIsCFRetained(CFTimeZoneCreateWithTimeIntervalFromGMT)
zone = CFTimeZoneCreateWithTimeIntervalFromGMT(None, 3600)
self.failUnless(isinstance(zone, CFTimeZoneRef))
@@ -102,7 +109,7 @@
r = CFTimeZoneIsDaylightSavingTime(zone,
CFGregorianDateGetAbsoluteTime(dt, zone))
- self.failUnless(r is False)
+ self.failUnless(r in (False, True))
offset = CFTimeZoneGetDaylightSavingTimeOffset(zone,
CFGregorianDateGetAbsoluteTime(dt, zone))
@@ -127,8 +134,5 @@
self.failUnless( isinstance(kCFTimeZoneSystemTimeZoneDidChangeNotification, unicode) )
-
-
-
if __name__ == "__main__":
main()
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cftree.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cftree.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cftree.py Fri Apr 10 08:52:51 2009
@@ -2,6 +2,9 @@
from PyObjCTools.TestSupport import *
class TestCFTree (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFTreeRef)
+
def testCreation(self):
context = object()
tree = CFTreeCreate(None, context)
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 Fri Apr 10 08:52:51 2009
@@ -2,9 +2,13 @@
import array
from CoreFoundation import *
import os
+from Foundation import NSURL
class TestURL (TestCase):
+ def testTypes(self):
+ self.failUnless(CFURLRef is NSURL)
+
def testTypeID(self):
val = CFURLGetTypeID()
self.failUnless( isinstance(val, (int, long)) )
@@ -60,6 +64,8 @@
url = u"http://www.omroep.nl/sport/"
baseref = CFURLCreateWithString(None, url, None)
+ self.failUnlessArgHasType(CFURLCreateAbsoluteURLWithBytes, 1, 'n^v')
+ self.failUnlessArgSizeInArg(CFURLCreateAbsoluteURLWithBytes, 1, 2)
ref = CFURLCreateAbsoluteURLWithBytes(None, "socker", len("socker"), kCFStringEncodingUTF8, baseref, True)
self.failUnless( isinstance(ref, CFURLRef) )
@@ -105,6 +111,8 @@
self.failIf(CFURLHasDirectoryPath(url))
p = os.path.expanduser('~')
+ self.failUnlessArgHasType(CFURLCreateFromFileSystemRepresentation, 1, 'n^t')
+ self.failUnlessArgIsNullTerminated(CFURLCreateFromFileSystemRepresentation, 1)
url = CFURLCreateFromFileSystemRepresentation(None,
p, len(p), True)
self.failUnless( isinstance(url, CFURLRef))
@@ -116,6 +124,7 @@
u"/tmp", kCFURLPOSIXPathStyle, True)
self.failUnless( isinstance(base, CFURLRef) )
+ self.failUnlessArgIsBOOL(CFURLCreateWithFileSystemPathRelativeToBase, 3)
url = CFURLCreateWithFileSystemPathRelativeToBase(None,
u"filename", kCFURLPOSIXPathStyle, True, base)
self.failUnless( isinstance(url, CFURLRef) )
@@ -124,6 +133,7 @@
self.assertEquals(strval, u"filename/")
+ self.failUnlessArgIsBOOL(CFURLCreateFromFileSystemRepresentationRelativeToBase, 3)
url = CFURLCreateFromFileSystemRepresentationRelativeToBase(None,
"filename2", 9, False, base)
self.failUnless( isinstance(url, CFURLRef) )
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfurlaccess.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfurlaccess.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfurlaccess.py Fri Apr 10 08:52:51 2009
@@ -28,10 +28,15 @@
def testFunctions(self):
url = CFURLCreateWithFileSystemPath(None, __file__, kCFURLPOSIXPathStyle, False)
+ self.failUnlessArgIsOut(CFURLCreatePropertyFromResource, 3)
val, errorCode = CFURLCreatePropertyFromResource(None, url, kCFURLFileExists, None)
self.failUnless(isinstance(errorCode, (int, long)))
self.failUnless(val is True)
+ self.failUnlessResultIsBOOL(CFURLCreateDataAndPropertiesFromResource)
+ self.failUnlessArgIsOut(CFURLCreateDataAndPropertiesFromResource, 2)
+ self.failUnlessArgIsOut(CFURLCreateDataAndPropertiesFromResource, 3)
+ self.failUnlessArgIsOut(CFURLCreateDataAndPropertiesFromResource, 5)
ok, data, properties, errorCode = CFURLCreateDataAndPropertiesFromResource(
None, url, None, None, None, None)
self.failUnless(ok)
@@ -40,6 +45,8 @@
self.failUnless(isinstance(errorCode, (int, long)))
self.failUnless(properties[kCFURLFileExists])
+ self.failUnlessResultIsBOOL(CFURLWriteDataAndPropertiesToResource)
+ self.failUnlessArgIsOut(CFURLWriteDataAndPropertiesToResource, 3)
url = CFURLCreateWithFileSystemPath(None, __file__ + "TEST", kCFURLPOSIXPathStyle, False)
ok, errorCode = CFURLWriteDataAndPropertiesToResource(
url, buffer("foobar"), None, None)
@@ -49,6 +56,8 @@
data = open(__file__ + "TEST", 'r').read()
self.failUnless(data == 'foobar')
+ self.failUnlessResultIsBOOL(CFURLDestroyResource)
+ self.failUnlessArgIsOut(CFURLDestroyResource, 1)
ok, errorCode = CFURLDestroyResource(url, None)
self.failUnless(ok)
self.failUnless(isinstance(errorCode, (int, long)))
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 Fri Apr 10 08:52:51 2009
@@ -2,6 +2,9 @@
from CoreFoundation import *
class TestUserNotification (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFUserNotificationRef)
+
def testTypeID(self):
id = CFUserNotificationGetTypeID()
self.failUnless( isinstance(id, (int, long)) )
@@ -15,22 +18,32 @@
kCFUserNotificationDefaultButtonTitleKey: "Cancel"
}
+ self.failUnlessArgIsOut(CFUserNotificationCreate, 3)
ref, error = CFUserNotificationCreate(None,
- 5.0, 0, None, infoDict)
+ 1.0, 0, None, infoDict)
self.failUnless( error == 0 )
self.failUnless( isinstance(ref, CFUserNotificationRef) )
- #FIXME: need to ensure that this function is called during
- # the test
+ values = []
@objc.callbackFor(CFUserNotificationCreateRunLoopSource)
def callout(notification, flags):
- print notification, flags
+ values.append((notification, flags))
+
+ self.failUnlessArgIsFunction(CFUserNotificationCreateRunLoopSource, 2, 'v^{__CFUserNotification=}' + objc._C_NSInteger, True)
rls = CFUserNotificationCreateRunLoopSource(None, ref, callout, 1)
self.failUnless(isinstance(rls, CFRunLoopSourceRef))
CFRunLoopAddSource(rl, rls, kCFRunLoopDefaultMode)
+ CFRunLoopRunInMode(kCFRunLoopDefaultMode, 2.0, True)
+
+ CFUserNotificationCancel(ref)
CFRunLoopRunInMode(kCFRunLoopDefaultMode, 1.0, True)
+ self.failUnlessEqual(len(values), 1)
+ self.failUnless(values[0][0] is ref)
+ self.failUnlessIsInstance(values[0][1], (int, long))
+
+ self.failUnlessArgIsOut(CFUserNotificationReceiveResponse, 2)
error, flags = CFUserNotificationReceiveResponse(ref, 1.0, None)
self.failUnless(isinstance(error, (int, long)))
self.failUnless(isinstance(flags, (int, long)))
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfuuid.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfuuid.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfuuid.py Fri Apr 10 08:52:51 2009
@@ -4,11 +4,16 @@
class TestCFUUIDAPI (TestCase):
+ def testTypes(self):
+ self.failUnlessIsCFType(CFUUIDRef)
+
def testTypeID(self):
v = CFUUIDGetTypeID()
self.failUnless(isinstance(v, (int, long)))
def testCreate(self):
+
+ self.failUnlessResultIsCFRetained(CFUUIDCreate)
uuid = CFUUIDCreate(None)
self.failIf(uuid is None)
self.failUnless(isinstance(uuid, CFUUIDRef))
@@ -19,10 +24,12 @@
self.failIf( m is None )
def testCreateWithBytes(self):
+ self.failUnlessResultIsCFRetained(CFUUIDCreateWithBytes)
uuid = CFUUIDCreateWithBytes(None, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
self.failIf(uuid is None)
self.failUnless(isinstance(uuid, CFUUIDRef))
+ self.failUnlessResultIsCFRetained(CFUUIDCreateString)
text = CFUUIDCreateString(None, uuid)
self.failUnless(text == u'01020304-0506-0708-090A-0B0C0D0E0F10')
@@ -30,6 +37,7 @@
self.assertRaises(ValueError, CFUUIDCreateWithBytes, None, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 300, 16)
def testCreateFromString(self):
+ self.failUnlessResultIsCFRetained(CFUUIDCreateFromString)
uuid1 = CFUUIDCreateFromString(None, u'01020304-0506-0708-090A-0B0C0D0E0F10')
self.failIf(uuid1 is None)
self.failUnless(isinstance(uuid1, CFUUIDRef))
@@ -73,6 +81,7 @@
# CFUUIDGetConstantUUIDWithBytes should not be released.
uuid = CFUUIDGetConstantUUIDWithBytes(None, *range(16))
+ CFRetain(CFUUIDGetConstantUUIDWithBytes) # Ensure the value won't be released.
self.failIf(uuid is None)
self.failUnless(isinstance(uuid, CFUUIDRef))
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfxmlnode.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfxmlnode.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfxmlnode.py Fri Apr 10 08:52:51 2009
@@ -5,6 +5,9 @@
class TestXMLNode (TestCase):
# NOTE: This doesn't actually test the API
+ def testTypes(self):
+ self.failUnlessIsCFType(CFXMLNodeRef)
+
def testConstants(self):
self.failUnless( kCFXMLNodeCurrentVersion == 1 )
@@ -32,6 +35,8 @@
self.failUnless( kCFXMLEntityTypeCharacter == 4 )
def testStructs(self):
+ return
+
o = CFXMLElementInfo()
self.failUnless( hasattr(o, 'attributes') )
self.failUnless( hasattr(o, 'attributeOrder') )
@@ -76,5 +81,16 @@
o = CFXMLEntityReferenceInfo()
self.failUnless( hasattr(o, 'entityType') )
+ def testFunctions(self):
+ self.failUnlessIsInstance(CFXMLNodeGetTypeID(), (int, long))
+
+ # CFXMLNodeCreate: requires manual binding
+ # CFXMLNodeGetInfoPtr: likewise
+ # Add tests that create all valid types of nodes with there additional info and
+ # try to extract the information.
+
+ self.failUnlessResultIsCFRetained(CFXMLNodeCreateCopy)
+ self.failUnlessResultIsCFRetained(CFXMLTreeCreateWithNode)
+
if __name__ == "__main__":
main()
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfxmlparser.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfxmlparser.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfxmlparser.py Fri Apr 10 08:52:51 2009
@@ -5,6 +5,9 @@
class TestXMLParser (TestCase):
# Note: This doesn't actually test the API
+ def testTypes(self):
+ self.failUnlessIsCFType(CFXMLParserRef)
+
def testTypeID(self):
self.failUnless(isinstance(CFXMLParserGetTypeID(), (int, long)))
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/setup.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/setup.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/setup.py Fri Apr 10 08:52:51 2009
@@ -27,7 +27,7 @@
setup(
name='pyobjc-framework-Cocoa',
- version='2.2b1',
+ version='2.2b2',
description = "Wrappers for the Cocoa frameworks on Mac OS X",
long_description = __doc__,
author='Ronald Oussoren',
@@ -47,10 +47,10 @@
},
zip_safe = False,
- entry_points = {
- 'console_scripts': [
- "nibclassbuilder = PyObjCTools.NibClassBuilder.commandline"
- ],
+# entry_points = {
+# 'console_scripts': [
+# "nibclassbuilder = PyObjCTools.NibClassBuilder.commandline"
+# ],
},
test_suite='PyObjCTest',
------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com