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

[email protected]
Newsgroups gmane.comp.python.pyobjc.cvs
Message-ID <[email protected]>
Author: ronaldoussoren
Date: Thu Aug 21 06:56:55 2008
New Revision: 2010

Log:
Add unittests for a large subset of CoreFoundation,
this needs to be enhanced to cover the entire API.

Note: some of these tests cause crashes in PyObjC,
those will be dealt with later on (some are caused
by bugs in the bridge, some by bugs in bridgesupport
files)


Added:
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfattributedstring.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbase.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbitvector.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbundle.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbyteorder.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfcharacterset.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdata.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdate.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdateformatter.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cferror.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cffiledescriptor.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cflocale.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfmachport.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfmessageport.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnotificationcenter.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnumberformatter.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfplugin.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfpreferences.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfpropertylist.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfrunloop.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfset.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfsocket.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstream.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstring.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfstringtokenizer.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cftimezone.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfurl.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfurlaccess.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfusernotification.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfuuid.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfxmlnode.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfxmlparser.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_foundationerrors.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsappleeventdescriptor.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsappleeventmanager.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsapplescript.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsarchiver.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nscomparisonpredicate.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsvalue.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsvaluetransformer.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsxmldocument.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsxmldtd.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsxmldtdnode.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsxmlelement.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsxmlnode.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsxmlnodeoptions.py   (contents, props changed)
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsxmlparser.py   (contents, props changed)
Modified:
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbag.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfbinaryheap.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfcalendar.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfdictionary.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cfnumber.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cftree.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsaffinetransform.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsnumber.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsundomanager.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsuserdefaults.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsworkspace.py
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nszone.py

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	Thu Aug 21 06:56:55 2008
@@ -2,25 +2,26 @@
 from CoreFoundation import *
 
 class TestCFBag (unittest.TestCase):
-    def dont_testCreation(self):
-        bag = CFBagCreate(None, [1,1,2,3,4], 5, kCFTypeBagCallBacks)
+
+    def testCreation(self):
+        bag = CFBagCreate(None, [1,1,2,3,4], 5)
         self.assert_(isinstance(bag, CFBagRef))
-        self.assertEquals(GetCountOfValue(bag, 1), 2)
-        self.assertEquals(GetCountOfValue(bag, 3), 1)
+        self.assertEquals(CFBagGetCountOfValue(bag, 1), 2)
+        self.assertEquals(CFBagGetCountOfValue(bag, 3), 1)
 
-        bag = CFBagCreateMutable(None, 0, kCFTypeBagCallbacks)
+        bag = CFBagCreateMutable(None, 0)
         self.assert_(isinstance(bag, CFBagRef))
-        CFBagSetValue(bag, 9)
-        CFBagSetValue(bag, 8)
-        CFBagSetValue(bag, 9)
-        self.assertEquals(GetCountOfValue(bag, 9), 2)
-        self.assertEquals(GetCountOfValue(bag, 8), 1)
+        CFBagAddValue(bag, 9)
+        CFBagAddValue(bag, 8)
+        CFBagAddValue(bag, 9)
+        self.assertEquals(CFBagGetCountOfValue(bag, 9), 2)
+        self.assertEquals(CFBagGetCountOfValue(bag, 8), 1)
     
-    def dont_testApplyFunction(self):
+    def testApplyFunction(self):
         items = []
         contexts = []
 
-        bag = CFBagCreate(None, [1,1,2,3,4], 5, kCFTypeBagCallBacks)
+        bag = CFBagCreate(None, [1,1,2,3,4], 5)
 
         def func(item, context):
             items.append(item*item)
@@ -31,5 +32,84 @@
         self.assertEquals(items, [1,1,4,9,16])
         self.assertEquals(contexts, [99,99,99,99,99])
 
+    def testTypeID(self):
+        v = CFBagGetTypeID()
+        self.failUnless(  isinstance(v, (int, long))  )
+
+    def testCopy(self):
+        bag = CFBagCreate(None, [1,1,2,3,4], 5)
+        self.failUnless( isinstance(bag, CFBagRef) )
+
+        bag2 = CFBagCreateCopy(None, bag)
+        self.failUnless( isinstance(bag2, CFBagRef) )
+
+        bag3 = CFBagCreateMutableCopy(None, 0, bag)
+        self.failUnless( isinstance(bag3, CFBagRef) )
+        self.failIf( bag3 is bag )
+
+    def testInspect(self):
+        bag = CFBagCreate(None, [u"Hello", 42, u"World", 42, u"a", u"a", u"a"], 7)
+        self.failUnless( isinstance(bag, CFBagRef) )
+
+        self.failUnless( CFBagGetCount(bag) == 7)
+        self.failUnless( CFBagGetCountOfValue(bag, u"Hello") == 1)
+        self.failUnless( CFBagGetCountOfValue(bag, 42) == 2)
+        self.failUnless( CFBagGetCountOfValue(bag, u"a") == 3)
+
+        self.failUnless( CFBagContainsValue(bag, u"a") )
+        self.failIf( CFBagContainsValue(bag, u"b") )
+
+        v = CFBagGetValue(bag, u"b")
+        self.failUnless( v is None)
+
+        v = CFBagGetValue(bag, u"a")
+        self.failUnless( v == u"a")
+
+        exists, value = CFBagGetValueIfPresent(bag, u"a", None)
+        self.failUnless( exists )
+        self.failUnless( value == u"a" )
+
+        exists, value = CFBagGetValueIfPresent(bag, u"b", None)
+        self.failIf( exists )
+        self.failUnless( value is None )
+
+        values = list(CFBagGetValues(bag))
+        values.sort()
+        l = [u"Hello", 42, u"World", 42, u"a", u"a", u"a"]
+        l.sort()
+        self.failUnless( values == l )
+
+
+    def testMutation(self):
+        bag = CFBagCreateMutable(None, 0)
+        self.failUnless( CFBagGetCount(bag) == 0)
+
+        CFBagAddValue(bag, u"hello")
+        self.failUnless( CFBagGetCount(bag) == 1)
+        CFBagAddValue(bag, u"hello")
+        self.failUnless( CFBagGetCount(bag) == 2)
+
+        CFBagReplaceValue(bag, u"hello")
+        self.failUnless( CFBagGetCount(bag) == 2)
+
+        CFBagReplaceValue(bag, u"world")
+        self.failUnless( CFBagGetCount(bag) == 2)
+
+        CFBagSetValue(bag, u"world")
+        self.failUnless( CFBagGetCount(bag) == 3)
+
+        CFBagSetValue(bag, u"world")
+        self.failUnless( CFBagGetCount(bag) == 3)
+
+        CFBagRemoveValue(bag, u"hello")
+        self.failUnless( CFBagGetCount(bag) == 2)
+        CFBagRemoveValue(bag, u"hello")
+        self.failUnless( CFBagGetCount(bag) == 1)
+
+        CFBagRemoveAllValues(bag)
+        self.failUnless( CFBagGetCount(bag) == 0)
+
+
+
 if __name__ == "__main__":
     unittest.main()

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	Thu Aug 21 06:56:55 2008
@@ -3,31 +3,25 @@
 import unittest
 
 class TestCFBinaryHeap (unittest.TestCase):
-    def dont_testCreation(self):
-        def compare(l, r, info):
-            return cmp(l, r)
 
+    def testCreation(self):
         heap = CFBinaryHeapCreate(
-                None, 0, 
-                kCFStringBinaryHeapCallBacks,
-                None)
+                None, 0)
         self.assert_(isinstance(heap, CFBinaryHeapRef))
 
         CFBinaryHeapAddValue(heap, "hello")
         CFBinaryHeapAddValue(heap, "world")
         CFBinaryHeapAddValue(heap, "aapjes")
 
-        self.failUnless(CFBinaryHeapContainsValue("hello"))
-        self.failIf(CFBinaryHeapContainsValue("niemand"))
+        self.failUnless(CFBinaryHeapContainsValue(heap, "hello"))
+        self.failIf(CFBinaryHeapContainsValue(heap, "niemand"))
 
-    def dont_testApply(self):
+    def testApply(self):
         def compare(l, r, info):
             return cmp(l, r)
 
         heap = CFBinaryHeapCreate(
-                None, 0, 
-                kCFStringBinaryHeapCallBacks,
-                None)
+                None, 0)
         self.assert_(isinstance(heap, CFBinaryHeapRef))
 
         CFBinaryHeapAddValue(heap, "hello")
@@ -39,12 +33,73 @@
 
         def function(item, context):
             items.append(item * 2)
-            context.append(context)
+            contexts.append(context)
 
         CFBinaryHeapApplyFunction(heap, function, None)
         self.assertEquals(contexts, [None, None, None])
-        #items.sort()
         self.assertEquals(items, ["aapjesaapjes", "hellohello", "worldworld"])
 
+        ctx = ['']
+        def function(item, context):
+            context[0] += item
+        CFBinaryHeapApplyFunction(heap, function, ctx)
+        self.assertEquals(ctx[0], 'aapjeshelloworld')
+
+
+    def testTypeID(self):
+        v = CFBinaryHeapGetTypeID()
+        self.failUnless(  isinstance(v, (int, long))  )
+
+    def testCopy(self):
+        heap = CFBinaryHeapCreate(
+                None, 0)
+        self.assert_(isinstance(heap, CFBinaryHeapRef))
+
+        CFBinaryHeapAddValue(heap, "hello")
+        CFBinaryHeapAddValue(heap, "world")
+        CFBinaryHeapAddValue(heap, "aapjes")
+
+        heap2 = CFBinaryHeapCreateCopy(None, 0, heap)
+        self.assert_(isinstance(heap2, CFBinaryHeapRef))
+
+    def testInspect(self):
+        heap = CFBinaryHeapCreate(
+                None, 0)
+        self.assert_(isinstance(heap, CFBinaryHeapRef))
+
+        CFBinaryHeapAddValue(heap, "hello")
+        CFBinaryHeapAddValue(heap, "world")
+        CFBinaryHeapAddValue(heap, "aapjes")
+
+        count = CFBinaryHeapGetCount(heap)
+        self.failUnless(count == 3)
+
+        count = CFBinaryHeapGetCountOfValue(heap, "hello")
+        self.failUnless(count == 1)
+        count = CFBinaryHeapGetCountOfValue(heap, "fobar")
+        self.failUnless(count == 0)
+
+        self.failUnless(CFBinaryHeapContainsValue(heap, "hello"))
+        self.failIf(CFBinaryHeapContainsValue(heap, "foobar"))
+
+        min = CFBinaryHeapGetMinimum(heap)
+        self.failUnless(min == "aapjes")
+
+        ok, min = CFBinaryHeapGetMinimumIfPresent(heap, None)
+        self.failUnless(ok)
+        self.failUnless(min == "aapjes")
+
+        values = CFBinaryHeapGetValues(heap)
+        self.failUnless(values == ("aapjes", "hello", "world"))
+
+        CFBinaryHeapRemoveMinimumValue(heap)
+        values = CFBinaryHeapGetValues(heap)
+        self.failUnless(values == ("hello", "world"))
+
+        CFBinaryHeapRemoveAllValues(heap)
+        values = CFBinaryHeapGetValues(heap)
+        self.failUnless(values == ())
+
+
 if __name__ == "__main__":
     unittest.main()

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	Thu Aug 21 06:56:55 2008
@@ -1,38 +1,38 @@
 import unittest
-import CoreFoundation
+from CoreFoundation import *
 
 class TestCFCalendarVariadic (unittest.TestCase):
     def testCFCalendarComposeAbsoluteTime(self):
-        calendar = CoreFoundation.CFCalendarCreateWithIdentifier(
-                None, CoreFoundation.kCFGregorianCalendar)
+        calendar = CFCalendarCreateWithIdentifier(
+                None, kCFGregorianCalendar)
         self.assert_(calendar is not None)
 
-        success, at = CoreFoundation.CFCalendarComposeAbsoluteTime(
+        success, at = CFCalendarComposeAbsoluteTime(
                 calendar, None, '')
         self.assertEquals(success, True)
         self.assert_(isinstance(at, float))
 
-        success, at = CoreFoundation.CFCalendarComposeAbsoluteTime(
+        success, at = CFCalendarComposeAbsoluteTime(
                 calendar, None, "yMdHms", 1965, 1, 6, 14, 10, 0)
         self.assertEquals(success, True)
         self.assert_(isinstance(at, float))
 
     def testCFCalendarAddComponents(self):
-        calendar = CoreFoundation.CFCalendarCreateWithIdentifier(
-                None, CoreFoundation.kCFGregorianCalendar)
+        calendar = CFCalendarCreateWithIdentifier(
+                None, kCFGregorianCalendar)
         self.assert_(calendar is not None)
 
-        success, at = CoreFoundation.CFCalendarComposeAbsoluteTime(
+        success, at = CFCalendarComposeAbsoluteTime(
                 calendar, None, "yMdHms", 1965, 1, 6, 14, 10, 0)
         self.assertEquals(success, True)
         self.assert_(isinstance(at, float))
 
-        success, at2 = CoreFoundation.CFCalendarAddComponents(
+        success, at2 = CFCalendarAddComponents(
                 calendar, at, 0, "yH", 2, 3)
         self.assertEquals(success, True)
         self.assert_(isinstance(at2, float))
 
-        success, y, H = CoreFoundation.CFCalendarGetComponentDifference(
+        success, y, H = CFCalendarGetComponentDifference(
                 calendar, at, at2, 0, "yH")
         self.assertEquals(success, True)
         self.assertEquals(y, 2)
@@ -40,16 +40,16 @@
 
 
     def testCFCalendarDecomposeAbsoluteTime(self):
-        calendar = CoreFoundation.CFCalendarCreateWithIdentifier(
-                None, CoreFoundation.kCFGregorianCalendar)
+        calendar = CFCalendarCreateWithIdentifier(
+                None, kCFGregorianCalendar)
         self.assert_(calendar is not None)
 
-        success, at = CoreFoundation.CFCalendarComposeAbsoluteTime(
+        success, at = CFCalendarComposeAbsoluteTime(
                 calendar, None, "yMdHms", 1965, 1, 6, 14, 10, 0)
         self.assertEquals(success, True)
         self.assert_(isinstance(at, float))
 
-        success, y, M, d, H, m, s = CoreFoundation.CFCalendarDecomposeAbsoluteTime(
+        success, y, M, d, H, m, s = CFCalendarDecomposeAbsoluteTime(
                 calendar, at, "yMdHms")
         self.assertEquals(y, 1965)
         self.assertEquals(M, 1)
@@ -59,26 +59,140 @@
         self.assertEquals(s, 0)
 
     def testCFCalendarGetComponentDifference(self):
-        calendar = CoreFoundation.CFCalendarCreateWithIdentifier(
-                None, CoreFoundation.kCFGregorianCalendar)
+        calendar = CFCalendarCreateWithIdentifier(
+                None, kCFGregorianCalendar)
         self.assert_(calendar is not None)
 
-        success, at1 = CoreFoundation.CFCalendarComposeAbsoluteTime(
+        success, at1 = CFCalendarComposeAbsoluteTime(
                 calendar, None, "yMdHms", 1965, 1, 6, 14, 10, 0)
         self.assertEquals(success, True)
         self.assert_(isinstance(at1, float))
 
-        success, at2 = CoreFoundation.CFCalendarComposeAbsoluteTime(
+        success, at2 = CFCalendarComposeAbsoluteTime(
                 calendar, None, "yMdHms", 1967, 2, 6, 14, 10, 0)
         self.assertEquals(success, True)
         self.assert_(isinstance(at2, float))
 
-        success, y, M = CoreFoundation.CFCalendarGetComponentDifference(
+        success, y, M = CFCalendarGetComponentDifference(
                 calendar, at1, at2, 0, "yM")
         self.assertEquals(success, True)
         self.assertEquals(y, 2)
         self.assertEquals(M, 1)
 
+    def testTypeID(self):
+        v = CFCalendarGetTypeID()
+        self.failUnless(isinstance(v, (int, long)))
+
+    def testCreation(self):
+        cal = CFCalendarCopyCurrent()
+        self.failUnless( isinstance(cal, CFCalendarRef) )
+
+        cal = CFCalendarCreateWithIdentifier(None, kCFBuddhistCalendar)
+        self.failUnless( isinstance(cal, CFCalendarRef) )
+
+
+    def testInspection(self):
+        cal = CFCalendarCreateWithIdentifier(None, kCFBuddhistCalendar)
+        self.failUnless( isinstance(cal, CFCalendarRef) )
+
+        name = CFCalendarGetIdentifier(cal)
+        self.failUnless(name == kCFBuddhistCalendar)
+
+        locale = CFCalendarCopyLocale(cal)
+        self.failUnless( isinstance(locale, CFLocaleRef) )
+
+        timezone = CFCalendarCopyTimeZone(cal)
+        self.failUnless( isinstance(timezone, CFTimeZoneRef) )
+
+        weekday = CFCalendarGetFirstWeekday(cal)
+        self.failUnless(0 <= weekday <= 7)
+
+        num = CFCalendarGetMinimumDaysInFirstWeek(cal)
+        self.failUnless(0 <= num <= 7)
+
+    
+        rng = CFCalendarGetMinimumRangeOfUnit(cal, kCFCalendarUnitEra)
+        self.failUnless(isinstance(rng, CFRange))
+
+        rng = CFCalendarGetMaximumRangeOfUnit(cal, kCFCalendarUnitEra)
+        self.failUnless(isinstance(rng, CFRange))
+
+        rng = CFCalendarGetRangeOfUnit(cal, kCFCalendarUnitDay, kCFCalendarUnitYear, CFAbsoluteTimeGetCurrent())
+        self.failUnless(isinstance(rng, CFRange))
+        self.failUnless(rng.location == 1)
+        self.failUnless(rng.length == 31)
+
+
+        v = CFCalendarGetOrdinalityOfUnit(cal, kCFCalendarUnitDay, kCFCalendarUnitYear, CFAbsoluteTimeGetCurrent())
+        self.failUnless( isinstance(v, (int, long)) )
+
+        ok, startp, tip = CFCalendarGetTimeRangeOfUnit(cal, kCFCalendarUnitDay, CFAbsoluteTimeGetCurrent(), None, None)
+        self.failUnless(ok is True)
+        self.failUnless(isinstance(startp, float))
+        self.failUnless(isinstance(tip, float))
+        self.failUnless(tip == 86400.0)
+
+
+    def testMutation(self):
+        cal = CFCalendarCreateWithIdentifier(None, kCFBuddhistCalendar)
+
+        loc = CFLocaleCreate(None, u"mr_IN")
+        self.failUnless(isinstance(loc, CFLocaleRef))
+        id1 = CFLocaleGetIdentifier(loc)
+
+        orig_loc = CFCalendarCopyLocale(cal)
+        self.failUnless(isinstance(orig_loc, CFLocaleRef))
+        orig_id = CFLocaleGetIdentifier(orig_loc)
+        CFCalendarSetLocale(cal, loc)
+        new_loc = CFCalendarCopyLocale(cal)
+        self.failUnless(isinstance(new_loc, CFLocaleRef))
+        new_id = CFLocaleGetIdentifier(new_loc)
+
+        self.failUnless(new_id == id1)
+        self.failIf(orig_id == id1)
+
+        tz = CFTimeZoneCreateWithName(None, u"Pacific/Wallis", True)
+        self.failUnless(isinstance(tz, CFTimeZoneRef))
+        orig_zone = CFCalendarCopyTimeZone(cal)
+        self.failUnless(isinstance(orig_zone, CFTimeZoneRef))
+
+        CFCalendarSetTimeZone(cal, tz)
+        new_zone = CFCalendarCopyTimeZone(cal)
+        self.failUnless(isinstance(new_zone, CFTimeZoneRef))
+
+        self.failUnless( CFTimeZoneGetName(new_zone) == u'Pacific/Wallis' )
+
+
+        weekday = CFCalendarGetFirstWeekday(cal)
+        weekday = weekday + 2 % 7
+        CFCalendarSetFirstWeekday(cal, weekday)
+        new = CFCalendarGetFirstWeekday(cal)
+        self.failUnless(new == weekday)
+
+        num = CFCalendarGetMinimumDaysInFirstWeek(cal)
+        if num == 1:
+            num = 2
+        else:
+            num = 1
+
+        CFCalendarSetMinimumDaysInFirstWeek(cal, num)
+        num2 = CFCalendarGetMinimumDaysInFirstWeek(cal)
+        self.failUnless(num2 == num)
+
+
+    def testConstants(self):
+        self.failUnless( kCFCalendarUnitEra == (1 << 1) )
+        self.failUnless( kCFCalendarUnitYear == (1 << 2) )
+        self.failUnless( kCFCalendarUnitMonth == (1 << 3) )
+        self.failUnless( kCFCalendarUnitDay == (1 << 4) )
+        self.failUnless( kCFCalendarUnitHour == (1 << 5) )
+        self.failUnless( kCFCalendarUnitMinute == (1 << 6) )
+        self.failUnless( kCFCalendarUnitSecond == (1 << 7) )
+        self.failUnless( kCFCalendarUnitWeek == (1 << 8) )
+        self.failUnless( kCFCalendarUnitWeekday == (1 << 9) )
+        self.failUnless( kCFCalendarUnitWeekdayOrdinal == (1 << 10) )
+
+        self.failUnless( kCFCalendarComponentsWrap == (1 << 0) )
 
 
 if __name__ == "__main__":

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	Thu Aug 21 06:56:55 2008
@@ -3,16 +3,12 @@
 import unittest
 
 class TestCFDictionary (unittest.TestCase):
+
     def testCreation(self):
-        dictionary = NSDictionary.dictionaryWithDictionary_(
-                { 'aap': 'monkey', 'noot': 'nut', 'mies': 'missy',
-                  'wim': 'john' })
-        #dictionary = CFDictionaryCreate(None,
-        #        ('aap', 'noot', 'mies', 'wim'),
-        #        ('monkey', 'nut', 'missy', 'john'),
-        #        4,
-        #        kCFTypeDictionaryKeyCallBacks,
-        #         kCFTypeDictionaryValueCallBacks)
+        dictionary = CFDictionaryCreate(None,
+                ('aap', 'noot', 'mies', 'wim'),
+                ('monkey', 'nut', 'missy', 'john'),
+                4)
         self.assert_(isinstance(dictionary, CFDictionaryRef))
         self.assertEquals(dictionary, {
                 'aap': 'monkey',
@@ -21,20 +17,111 @@
                 'wim': 'john'
             })
 
-        #dictionary = CFDictionaryCreateMutable(
-        #        None, 0, 
-        #        kCFTypeDictionaryKeyCallBacks,
-        #         kCFTypeDictionaryValueCallBacks)
-        dictionary = NSMutableDictionary.dictionary()
+        dictionary = CFDictionaryCreateMutable(None, 0)
         self.assert_(isinstance(dictionary, CFMutableDictionaryRef))
         CFDictionarySetValue(dictionary, 'hello', 'world')
         self.assertEquals(dictionary, {'hello': 'world'})
 
     def testApplyFunction(self):
-        dictionary = NSDictionary.dictionaryWithDictionary_({
-                'foo': 'bar',
-                40: 42,
-            })
+        dictionary = CFDictionaryCreate(None,
+                ('aap', 'noot', 'mies', 'wim'),
+                ('monkey', 'nut', 'missy', 'john'), 4)
+
+        context = []
+
+        def function(key, value, context):
+            context.append((key, value))
+
+        CFDictionaryApplyFunction(dct, function, context)
+
+        context.sort()
+        self.failUnless(len(context) == 4)
+        self.assertEquals(context,
+                [
+                    ('aap', 'monkey'),
+                    ('noot', 'nut'),
+                    ('mies', 'missy'),
+                    ('wim', 'john')
+                ])
+
+    def testTypeID(self):
+        self.failUnless(isinstance(CFDictionaryGetTypeID(), (int, long)))
+
+    def testCreation(self):
+        dct = CFDictionaryCreate(None, [u"key1", u"key2"], [42, 43], 2)
+        self.failUnless(isinstance(dct, CFDictionaryRef))
+
+        dct = CFDictionaryCreateCopy(None, dct)
+        self.failUnless(isinstance(dct, CFDictionaryRef))
+
+        dct = CFDictionaryCreateMutable(None, 0)
+        self.failUnless(isinstance(dct, CFDictionaryRef))
+
+        dct = CFDictionaryCreateMutableCopy(None, 0, dct)
+        self.failUnless(isinstance(dct, CFDictionaryRef))
+
+    def testInspection(self):
+        dct = CFDictionaryCreate(None, [u"key1", u"key2"], [42, 42], 2)
+        self.failUnless(isinstance(dct, CFDictionaryRef))
+
+        self.failUnless(CFDictionaryGetCount(dct) == 2)
+        self.failUnless(CFDictionaryGetCountOfKey(dct, u"key1") == 1)
+        self.failUnless(CFDictionaryGetCountOfKey(dct, u"key3") == 0)
+
+        self.failUnless(CFDictionaryGetCountOfValue(dct, 42) == 2)
+        self.failUnless(CFDictionaryGetCountOfValue(dct, 44) == 0)
+
+        self.failUnless(CFDictionaryContainsKey(dct, u"key1"))
+        self.failIf(CFDictionaryContainsKey(dct, u"key3"))
+
+        self.failUnless(CFDictionaryContainsValue(dct, 42))
+        self.failIf(CFDictionaryContainsValue(dct, u"key3"))
+
+        self.failUnless(CFDictionaryGetValue(dct, "key2") == 42)
+        self.failUnless(CFDictionaryGetValue(dct, "key3") is None)
+
+        ok, value = CFDictionaryGetValueIfPresent(dct, "key2", None)
+        self.failUnless(ok)
+        self.failUnless(value == 42)
+
+        ok, value = CFDictionaryGetValueIfPresent(dct, "key3", None)
+        self.failIf(ok)
+        self.failUnless(value is None)
+
+
+        keys, values = CFDictionaryGetKeysAndValues(dct, None, None)
+        self.failUnless(values == (42, 42))
+        keys = list(keys)
+        keys.sort()
+        self.failUnless(keys == ['key1', 'key2'])
+
+    def testMutation(self):
+        dct = CFDictionaryCreateMutable(None, 0)
+        self.failUnless(CFDictionaryGetCount(dct) == 0)
+
+        CFDictionaryAddValue(dct, u"key1", u"value1")
+        self.failUnless(CFDictionaryGetCount(dct) == 1)
+        self.failUnless(CFDictionaryContainsKey(dct, u"key1"))
+
+        CFDictionarySetValue(dct, u"key2", u"value2")
+        self.failUnless(CFDictionaryGetCount(dct) == 2)
+        self.failUnless(CFDictionaryContainsKey(dct, u"key2"))
+
+        CFDictionaryReplaceValue(dct, u"key2", u"value2b")
+        self.failUnless(CFDictionaryGetCount(dct) == 2)
+        self.failUnless(CFDictionaryContainsKey(dct, u"key2"))
+        self.failUnless(CFDictionaryGetValue(dct, "key2") == u"value2b")
+
+        CFDictionaryReplaceValue(dct, u"key3", u"value2b")
+        self.failUnless(CFDictionaryGetCount(dct) == 2)
+        self.failIf(CFDictionaryContainsKey(dct, u"key3"))
+
+        CFDictionaryRemoveValue(dct, u"key1")
+        self.failIf(CFDictionaryContainsKey(dct, u"key1"))
+
+        CFDictionaryRemoveAllValues(dct)
+        self.failIf(CFDictionaryContainsKey(dct, u"key2"))
+        self.failUnless(CFDictionaryGetCount(dct) == 0)
 
 if __name__ == "__main__":
     unittest.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	Thu Aug 21 06:56:55 2008
@@ -1,82 +1,240 @@
-import unittest
+import unittest, sys
 from CoreFoundation import *
 
 class TestCFNumber (unittest.TestCase):
     def testCFNumberGetValue(self):
         number = 42
 
-        ok, v = CFNumberGetValue(number, kCFNumberSInt8Type);
+        ok, v = CFNumberGetValue(number, kCFNumberSInt8Type, None);
         self.assert_(ok)
         self.assert_(isinstance(v, (int, long)))
         self.assertEquals(v, 42)
 
-        ok, v = CFNumberGetValue(number, kCFNumberSInt16Type);
+        ok, v = CFNumberGetValue(number, kCFNumberSInt16Type, None);
         self.assert_(ok)
         self.assert_(isinstance(v, (int, long)))
         self.assertEquals(v, 42)
 
-        ok, v = CFNumberGetValue(number, kCFNumberSInt32Type);
+        ok, v = CFNumberGetValue(number, kCFNumberSInt32Type, None);
         self.assert_(ok)
         self.assert_(isinstance(v, (int, long)))
         self.assertEquals(v, 42)
 
-        ok, v = CFNumberGetValue(number, kCFNumberSInt64Type);
+        ok, v = CFNumberGetValue(number, kCFNumberSInt64Type, None);
         self.assert_(ok)
         self.assert_(isinstance(v, (int, long)))
         self.assertEquals(v, 42)
 
-        ok, v = CFNumberGetValue(number, kCFNumberCharType);
+        ok, v = CFNumberGetValue(number, kCFNumberCharType, None);
         self.assert_(ok)
         self.assert_(isinstance(v, (int, long)))
         self.assertEquals(v, 42)
 
-        ok, v = CFNumberGetValue(number, kCFNumberShortType);
+        ok, v = CFNumberGetValue(number, kCFNumberShortType, None);
         self.assert_(ok)
         self.assert_(isinstance(v, (int, long)))
         self.assertEquals(v, 42)
 
-        ok, v = CFNumberGetValue(number, kCFNumberIntType);
+        ok, v = CFNumberGetValue(number, kCFNumberIntType, None);
         self.assert_(ok)
         self.assert_(isinstance(v, (int, long)))
         self.assertEquals(v, 42)
 
-        ok, v = CFNumberGetValue(number, kCFNumberLongType);
+        ok, v = CFNumberGetValue(number, kCFNumberLongType, None);
         self.assert_(ok)
         self.assert_(isinstance(v, (int, long)))
         self.assertEquals(v, 42)
 
-        ok, v = CFNumberGetValue(number, kCFNumberLongLongType);
+        ok, v = CFNumberGetValue(number, kCFNumberLongLongType, None);
         self.assert_(ok)
         self.assert_(isinstance(v, (int, long)))
         self.assertEquals(v, 42)
 
-        ok, v = CFNumberGetValue(number, kCFNumberCFIndexType);
+        ok, v = CFNumberGetValue(number, kCFNumberCFIndexType, None);
         self.assert_(ok)
         self.assert_(isinstance(v, (int, long)))
         self.assertEquals(v, 42)
 
-        ok, v = CFNumberGetValue(number, kCFNumberFloat32Type)
+        ok, v = CFNumberGetValue(number, kCFNumberFloat32Type, None)
         self.assert_(ok)
         self.assert_(isinstance(v, float))
         self.assertEquals(v, 42.0)
 
-        ok, v = CFNumberGetValue(number, kCFNumberFloat64Type)
+        ok, v = CFNumberGetValue(number, kCFNumberFloat64Type, None)
         self.assert_(ok)
         self.assert_(isinstance(v, float))
         self.assertEquals(v, 42.0)
 
-        ok, v = CFNumberGetValue(number, kCFNumberFloatType)
+        ok, v = CFNumberGetValue(number, kCFNumberFloatType, None)
         self.assert_(ok)
         self.assert_(isinstance(v, float))
         self.assertEquals(v, 42.0)
 
-        ok, v = CFNumberGetValue(number, kCFNumberDoubleType)
+        ok, v = CFNumberGetValue(number, kCFNumberDoubleType, None)
         self.assert_(ok)
         self.assert_(isinstance(v, float))
         self.assertEquals(v, 42.0)
 
-        ok, v = CFNumberGetValue(number, kCFNumberMaxType+2)
-        self.assert_(not ok)
+        ## Don't test this, the wrapper shouldn't range-check 
+        ## arguments and CFNumberGetValue will crash when the
+        ## number type is invalid
+        #ok, v = CFNumberGetValue(number, kCFNumberMaxType+2)
+        #self.assert_(not ok)
+
+    def testBoolean(self):
+        self.failUnless(isinstance(CFBooleanGetTypeID(), (int, long)))
+
+        self.failUnless(CFBooleanGetValue(kCFBooleanTrue))
+        self.failIf(CFBooleanGetValue(kCFBooleanFalse))
+        self.failUnless(CFBooleanGetValue(True))
+        self.failIf(CFBooleanGetValue(False))
+
+    def no_testNumber(self):
+        self.failUnless(isinstance(CFNumberGetTypeID(), (int, long)))
+
+        # Add cases for all number types
+        num = CFNumberCreate(None, kCFNumberSInt8Type, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failIf(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+        
+        num = CFNumberCreate(None, kCFNumberSInt8Type, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failIf(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberSInt16Type, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failIf(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberSInt32Type, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failIf(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberSInt64Type, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failIf(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberFloat32Type, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failUnless(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberFloat64Type, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failUnless(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberCharType, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failIf(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberShortType, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failIf(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberIntType, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failIf(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberLongType, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failIf(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberLongLongType, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failIf(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberFloatType, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failUnless(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberDoubleType, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failUnless(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberCFIndexType, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failIf(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberNSIntegerType, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failIf(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+        num = CFNumberCreate(None, kCFNumberCGFloatType, 1)
+        self.failUnless(isinstance(num, CFNumberRef))
+        self.failUnless(CFNumberIsFloatType(num))
+        self.failUnless(num == 1)
+
+
+
+    def testNumberTypes(self):
+        v = CFNumberGetType(44)
+        self.failUnless(v == kCFNumberLongType)
+
+        v = CFNumberGetType(2.5)
+        self.failUnless(v == kCFNumberDoubleType)
+
+        v = CFNumberGetByteSize(44)
+        if sys.maxint > 2 ** 32:
+            self.failUnless(v == 8)
+        else:
+            self.failUnless(v == 4)
+
+        v = CFNumberGetByteSize(44.0)
+        self.failUnless(v == 8)
+
+        self.failIf(CFNumberIsFloatType(44))
+        self.failUnless(CFNumberIsFloatType(1.0))
+
+        r = CFNumberCompare(44, 45, 0)
+        self.failUnless(r < 0)
+
+
+
+
+    def testConstants(self):
+        self.failUnless(kCFBooleanTrue is True)
+        self.failUnless(kCFBooleanFalse is False)
+
+        self.failUnless(kCFNumberSInt8Type == 1)
+        self.failUnless(kCFNumberSInt16Type == 2)
+        self.failUnless(kCFNumberSInt32Type == 3)
+        self.failUnless(kCFNumberSInt64Type == 4)
+        self.failUnless(kCFNumberFloat32Type == 5)
+        self.failUnless(kCFNumberFloat64Type == 6)
+        self.failUnless(kCFNumberCharType == 7)
+        self.failUnless(kCFNumberShortType == 8)
+        self.failUnless(kCFNumberIntType == 9)
+        self.failUnless(kCFNumberLongType == 10)
+        self.failUnless(kCFNumberLongLongType == 11)
+        self.failUnless(kCFNumberFloatType == 12)
+        self.failUnless(kCFNumberDoubleType == 13)
+        self.failUnless(kCFNumberCFIndexType == 14)
+        self.failUnless(kCFNumberNSIntegerType == 15)
+        self.failUnless(kCFNumberCGFloatType == 16)
+        self.failUnless(kCFNumberMaxType == 16)
+
+        self.failUnless(isinstance(kCFNumberPositiveInfinity, float))
+        self.failUnless(isinstance(kCFNumberNegativeInfinity, float))
+        self.failUnless(isinstance(kCFNumberNaN, float))
+
+
+
+
+
 
 if __name__ == "__main__":
     unittest.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	Thu Aug 21 06:56:55 2008
@@ -2,6 +2,9 @@
 import unittest
 
 class TestCFTree (unittest.TestCase):
+    def testDummy(self):
+        self.fail("CFTree tests are not yet complete")
+
     def testCreation(self):
         context = object()
         tree = CFTreeCreate(None, context)

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsaffinetransform.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsaffinetransform.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsaffinetransform.py	Thu Aug 21 06:56:55 2008
@@ -167,5 +167,18 @@
         self.assertRaises(TypeError, operator.delslice, p, 0, 2)
 
 
+class TestAffineTransform (unittest.TestCase):
+    def testStructReturn (self):
+        transform = NSAffineTransform.transform()
+        s = transform.transformStruct()
+        self.failUnless(isinstance(s, NSAffineTransformStruct))
+
+        s = NSAffineTransformStruct(0, 1, 2, 3, 4, 5)
+        transform.setTransformStruct_(s)
+
+        t = transform.transformStruct()
+        self.failUnless(isinstance(t, NSAffineTransformStruct))
+        self.assertEquals(s, t)
+
 if __name__ == "__main__":
     unittest.main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsnumber.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsnumber.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsnumber.py	Thu Aug 21 06:56:55 2008
@@ -31,6 +31,9 @@
 
 
 class TestNSNumber( unittest.TestCase ):
+    def testFixme(self):
+        self.fail("need attention")
+
     def testSimple(self):
         self.assertEquals(NSNumber.numberWithFloat_(1.0), 1,0)
         self.assertEquals(NSNumber.numberWithInt_(1), 1)

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsundomanager.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsundomanager.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsundomanager.py	Thu Aug 21 06:56:55 2008
@@ -9,6 +9,9 @@
         foo[0] += 1
 
 class TestNSUndoManager(unittest.TestCase):
+    def testFail(self):
+        self.fail("Add tests that check undo calling methods with odd signatures")
+
     def testUndoManager(self):
         x = TestHelper.new()
         m = NSUndoManager.new()
@@ -55,9 +58,6 @@
 class TestSubclassingUndo(unittest.TestCase):
     # Bugreport: 678759 Subclassing NSUndoManager fails
 
-    pass
-
-if 0:
     def testSubclass(self):
         class UndoSubclass (NSUndoManager):
             pass
@@ -71,5 +71,17 @@
 
         self.assertEquals(l[0], 1)
 
+    def testConstants(self):
+        self.failUnless(isinstance(NSUndoManagerCheckpointNotification, unicode))
+        self.failUnless(isinstance(NSUndoManagerWillUndoChangeNotification, unicode))
+        self.failUnless(isinstance(NSUndoManagerWillRedoChangeNotification, unicode))
+
+        self.failUnless(isinstance(NSUndoManagerDidUndoChangeNotification, unicode))
+        self.failUnless(isinstance(NSUndoManagerDidRedoChangeNotification, unicode))
+
+        self.failUnless(isinstance(NSUndoManagerDidOpenUndoGroupNotification, unicode))
+        self.failUnless(isinstance(NSUndoManagerWillCloseUndoGroupNotification, unicode))
+
+
 if __name__ == '__main__':
     unittest.main( )

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsuserdefaults.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsuserdefaults.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsuserdefaults.py	Thu Aug 21 06:56:55 2008
@@ -1,13 +1,52 @@
-import Foundation
+from Foundation import *
 import unittest
 
 class PythonListAsValue (unittest.TestCase):
 
     def testSettingPythonList(self):
-        defaults = Foundation.NSUserDefaults.standardUserDefaults()
+        defaults = NSUserDefaults.standardUserDefaults()
         defaults.setObject_forKey_([u'a', u'b', u'c'], u'randomKey')
 
         self.assertEquals(defaults.arrayForKey_(u'randomKey'), [u'a', u'b', u'c'])
 
+
+    def testConstants(self):
+        self.failUnless(isinstance(NSGlobalDomain, unicode))
+        self.failUnless(isinstance(NSArgumentDomain, unicode))
+        self.failUnless(isinstance(NSRegistrationDomain, unicode))
+
+        self.failUnless(isinstance(NSUserDefaultsDidChangeNotification, unicode))
+
+        self.failUnless(isinstance(NSWeekDayNameArray, unicode))
+        self.failUnless(isinstance(NSShortWeekDayNameArray, unicode))
+        self.failUnless(isinstance(NSMonthNameArray, unicode))
+
+        self.failUnless(isinstance(NSShortMonthNameArray, unicode))
+        self.failUnless(isinstance(NSTimeFormatString, unicode))
+        self.failUnless(isinstance(NSDateFormatString, unicode))
+        self.failUnless(isinstance(NSTimeDateFormatString, unicode))
+        self.failUnless(isinstance(NSShortTimeDateFormatString, unicode))
+        self.failUnless(isinstance(NSCurrencySymbol, unicode))
+        self.failUnless(isinstance(NSDecimalSeparator, unicode))
+        self.failUnless(isinstance(NSThousandsSeparator, unicode))
+        self.failUnless(isinstance(NSDecimalDigits, unicode))
+        self.failUnless(isinstance(NSAMPMDesignation, unicode))
+        self.failUnless(isinstance(NSHourNameDesignations, unicode))
+        self.failUnless(isinstance(NSYearMonthWeekDesignations, unicode))
+        self.failUnless(isinstance(NSEarlierTimeDesignations, unicode))
+        self.failUnless(isinstance(NSLaterTimeDesignations, unicode))
+        self.failUnless(isinstance(NSThisDayDesignations, unicode))
+        self.failUnless(isinstance(NSNextDayDesignations, unicode))
+        self.failUnless(isinstance(NSNextNextDayDesignations, unicode))
+        self.failUnless(isinstance(NSPriorDayDesignations, unicode))
+        self.failUnless(isinstance(NSDateTimeOrdering, unicode))
+        self.failUnless(isinstance(NSInternationalCurrencyString, unicode))
+        self.failUnless(isinstance(NSShortDateFormatString, unicode))
+        self.failUnless(isinstance(NSPositiveCurrencyFormatString, unicode))
+        self.failUnless(isinstance(NSNegativeCurrencyFormatString, unicode))
+
+
+
+
 if __name__ == "__main__":
     unittest.main()

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsworkspace.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsworkspace.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nsworkspace.py	Thu Aug 21 06:56:55 2008
@@ -19,5 +19,69 @@
         self.assert_(res[1] == u'/System/Library/CoreServices/Finder.app')
         self.assert_(res[2] == u'')
 
+    def testGetFileSystemInfo(self):
+        self.fail('- (BOOL)getFileSystemInfoForPath:(NSString *)fullPath isRemovable:(BOOL *)removableFlag isWritable:(BOOL *)writableFlag isUnmountable:(BOOL *)unmountableFlag description:(NSString **)description type:(NSString **)fileSystemType;')
+
+    def testPerformOperation(self):
+        self.fail('- (BOOL)performFileOperation:(NSString *)operation source:(NSString *)source destination:(NSString *)destination files:(NSArray *)files tag:(NSInteger *)tag;')
+
+    def testLaunchApp(self):
+        self.fail('- (BOOL)launchAppWithBundleIdentifier:(NSString *)bundleIdentifier options:(NSWorkspaceLaunchOptions)options additionalEventParamDescriptor:(NSAppleEventDescriptor *)descriptor launchIdentifier:(NSNumber **)identifier;')
+
+    def testOpenURLs(self):
+        self.fail('- (BOOL)openURLs:(NSArray *)urls withAppBundleIdentifier:(NSString *)bundleIdentifier options:(NSWorkspaceLaunchOptions)options additionalEventParamDescriptor:(NSAppleEventDescriptor *)descriptor launchIdentifiers:(NSArray **)identifiers;')
+
+    def testTypeOfFile(self):
+        self.fail('- (NSString *)typeOfFile:(NSString *)absoluteFilePath error:(NSError **)outError;')
+
+
+    def testConstants(self):
+        self.assertEquals(NSWorkspaceLaunchAndPrint, 0x00000002)
+        self.assertEquals(NSWorkspaceLaunchInhibitingBackgroundOnly, 0x00000080)
+        self.assertEquals(NSWorkspaceLaunchWithoutAddingToRecents, 0x00000100)
+        self.assertEquals(NSWorkspaceLaunchWithoutActivation, 0x00000200)
+        self.assertEquals(NSWorkspaceLaunchAsync, 0x00010000)
+        self.assertEquals(NSWorkspaceLaunchAllowingClassicStartup, 0x00020000)
+        self.assertEquals(NSWorkspaceLaunchPreferringClassic, 0x00040000)
+        self.assertEquals(NSWorkspaceLaunchNewInstance, 0x00080000)
+        self.assertEquals(NSWorkspaceLaunchAndHide, 0x00100000)
+        self.assertEquals(NSWorkspaceLaunchAndHideOthers, 0x00200000)
+        self.assertEquals(NSWorkspaceLaunchDefault, (
+                NSWorkspaceLaunchAsync | NSWorkspaceLaunchAllowingClassicStartup))
+
+        self.assertEquals(NSExcludeQuickDrawElementsIconCreationOption, 1 << 1)
+        self.assertEquals(NSExclude10_4ElementsIconCreationOption, 1 << 2)
+
+        self.failUnless(isinstance(NSWorkspaceDidLaunchApplicationNotification, unicode))
+        self.failUnless(isinstance(NSWorkspaceDidMountNotification, unicode))
+        self.failUnless(isinstance(NSWorkspaceDidPerformFileOperationNotification, unicode))
+        self.failUnless(isinstance(NSWorkspaceDidTerminateApplicationNotification, unicode))
+        self.failUnless(isinstance(NSWorkspaceDidUnmountNotification, unicode))
+        self.failUnless(isinstance(NSWorkspaceWillLaunchApplicationNotification, unicode))
+        self.failUnless(isinstance(NSWorkspaceWillPowerOffNotification, unicode))
+        self.failUnless(isinstance(NSWorkspaceWillUnmountNotification, unicode))
+        self.failUnless(isinstance(NSWorkspaceWillSleepNotification, unicode))
+        self.failUnless(isinstance(NSWorkspaceDidWakeNotification, unicode))
+        self.failUnless(isinstance(NSWorkspaceSessionDidBecomeActiveNotification, unicode))
+        self.failUnless(isinstance(NSWorkspaceSessionDidResignActiveNotification, unicode))
+        self.failUnless(isinstance(NSPlainFileType, unicode))
+        self.failUnless(isinstance(NSDirectoryFileType, unicode))
+        self.failUnless(isinstance(NSApplicationFileType, unicode))
+        self.failUnless(isinstance(NSFilesystemFileType, unicode))
+        self.failUnless(isinstance(NSShellCommandFileType, unicode))
+        self.failUnless(isinstance(NSWorkspaceMoveOperation, unicode))
+        self.failUnless(isinstance(NSWorkspaceCopyOperation, unicode))
+        self.failUnless(isinstance(NSWorkspaceLinkOperation, unicode))
+        self.failUnless(isinstance(NSWorkspaceCompressOperation, unicode))
+        self.failUnless(isinstance(NSWorkspaceDecompressOperation, unicode))
+        self.failUnless(isinstance(NSWorkspaceEncryptOperation, unicode))
+        self.failUnless(isinstance(NSWorkspaceDecryptOperation, unicode))
+        self.failUnless(isinstance(NSWorkspaceDestroyOperation, unicode))
+        self.failUnless(isinstance(NSWorkspaceRecycleOperation, unicode))
+        self.failUnless(isinstance(NSWorkspaceDuplicateOperation, unicode))
+
+
+
+
 if __name__ == '__main__':
     unittest.main( )

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nszone.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nszone.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_nszone.py	Thu Aug 21 06:56:55 2008
@@ -1,6 +1,10 @@
 import unittest, objc
 from Foundation import *
 
+# HACK
+import Foundation
+NSZonePtr = getattr(Foundation, 'NSZone*')
+
 class TestNSZone (unittest.TestCase):
     def testWithZones(self):
         obj = NSObject.allocWithZone_(None).init()
@@ -15,5 +19,60 @@
         self.assertRaises(TypeError, NSObject.allocWithZone_, 10)
         #self.assertRaises(TypeError, NSObject.allocWithZone_, objc.NULL)
 
+
+    def testNoMallocAndFriends(self):
+        import Foundation
+        self.failIf(hasattr(Foundation, 'NSZoneMalloc'))
+        self.failIf(hasattr(Foundation, 'NSZoneCalloc'))
+        self.failIf(hasattr(Foundation, 'NSZoneRealloc'))
+        self.failIf(hasattr(Foundation, 'NSZoneFree'))
+        self.failIf(hasattr(Foundation, 'NSZoneFromPointer'))
+        self.failIf(hasattr(Foundation, 'NSAllocateCollectable'))
+        self.failIf(hasattr(Foundation, 'NSReallocateCollectable'))
+        self.failIf(hasattr(Foundation, 'NSAllocateMemoryPages'))
+        self.failIf(hasattr(Foundation, 'NSDeallocateMemoryPages'))
+        self.failIf(hasattr(Foundation, 'NSCopyMemoryPages'))
+
+    def testConstants(self):
+        self.assertEquals(NSScannedOption, (1<<0))
+        self.assertEquals(NSCollectorDisabledOption, (1<<1))
+
+    def testMakeCollectable(self):
+        v = NSMakeCollectable
+        
+        o = NSObject.alloc().init()
+        CFRetain(o)
+        v = NSMakeCollectable(o)
+        self.failUnless(v is o)
+
+        v = NSMakeCollectable(None)
+        self.failUnless(v is None)
+
+    def testInfoFunctions(self):
+        v = NSPageSize()
+        self.failUnless(isinstance(v, (int, long)))
+        v = NSLogPageSize()
+        self.failUnless(isinstance(v, (int, long)))
+        v = NSRoundUpToMultipleOfPageSize(500)
+        self.failUnless(isinstance(v, (int, long)))
+        v = NSRoundDownToMultipleOfPageSize(500)
+        self.failUnless(isinstance(v, (int, long)))
+        v = NSRealMemoryAvailable()
+        self.failUnless(isinstance(v, (int, long)))
+
+    def testZoneCreation(self):
+        z = NSDefaultMallocZone()
+        self.failUnless(z is None or isinstance(z, NSZonePtr))
+
+        z = NSCreateZone(5000, 100, True)
+        self.failUnless(isinstance(z, NSZonePtr))
+
+        NSSetZoneName(z, u"Hello World")
+        nm = NSZoneName(z)
+        self.assertEquals(nm, u"Hello World")
+
+        NSRecycleZone(z); z = None
+
+
 if __name__ == "__main__":
     unittest.main()

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