[PyObjC-svn] r2337 - in trunk/pyobjc/pyobjc-core: Lib/PyObjCTools PyObjCTest
[email protected] Tue, 13 Oct 2009 06:00:14 -0500
| Newsgroups | gmane.comp.python.pyobjc.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: ronaldoussoren
Date: Tue Oct 13 06:00:14 2009
New Revision: 2337
Log:
Ensure pyobjc-core tests pass on osx 10.4
Modified:
trunk/pyobjc/pyobjc-core/Lib/PyObjCTools/TestSupport.py
trunk/pyobjc/pyobjc-core/PyObjCTest/test_keyvalue.py
trunk/pyobjc/pyobjc-core/PyObjCTest/test_posing.py
Modified: trunk/pyobjc/pyobjc-core/Lib/PyObjCTools/TestSupport.py
==============================================================================
--- trunk/pyobjc/pyobjc-core/Lib/PyObjCTools/TestSupport.py (original)
+++ trunk/pyobjc/pyobjc-core/Lib/PyObjCTools/TestSupport.py Tue Oct 13 06:00:14 2009
@@ -110,7 +110,7 @@
if not is32Bit():
if _sys.version_info[:2] >= (2, 7):
return _unittest.skip("only on 32-bit")(function)
- return None
+ return lambda self: None
else:
return function
@@ -133,7 +133,7 @@
if _sys.version_info[:2] >= (2, 7):
return _unittest.skip("min_os_level(%s)"%(release,))
else:
- return None
+ return lambda self: None
return decorator
@@ -155,7 +155,7 @@
if _sys.version_info[:2] >= (2, 7):
return _unittest.skip("max_os_level(%s)"%(release,))
else:
- return None
+ return lambda self: None
return decorator
@@ -496,6 +496,14 @@
if not value.startswith(check):
self.fail(message or "not %r.startswith(%r)"%(value, check))
+ def failUnlessHasAttr(self, value, key, message=None):
+ if not hasattr(value, key):
+ self.fail(message or "%s is not an attribute of %r"%(key, value))
+
+ def failIfHasAttr(self, value, key, message=None):
+ if hasattr(value, key):
+ self.fail(message or "%s is an attribute of %r"%(key, value))
+
def failUnlessIsInstance(self, value, types, message=None):
if not isinstance(value, types):
self.fail(message or "%s is not an instance of %r"%(value, types))
Modified: trunk/pyobjc/pyobjc-core/PyObjCTest/test_keyvalue.py
==============================================================================
--- trunk/pyobjc/pyobjc-core/PyObjCTest/test_keyvalue.py (original)
+++ trunk/pyobjc/pyobjc-core/PyObjCTest/test_keyvalue.py Tue Oct 13 06:00:14 2009
@@ -148,9 +148,9 @@
STUB.setKeyValue_forObject_key_value_(DO_TAKEVALUE_FORKEY, o, u'key5', u'V')
self.assertEquals(o.key5, u"VVVVV")
- self.assert_(not hasattr(o, u'key9'))
+ self.failIfHasAttr(o, u'key9')
STUB.setKeyValue_forObject_key_value_(DO_TAKEVALUE_FORKEY, o, u'key9', u'IX')
- self.assert_(hasattr(o, u'key9'))
+ self.failUnlessHasAttr(o, u'key9')
self.assertEquals(o.key9, u'IX')
def testTakeValueForKey2(self):
@@ -177,9 +177,9 @@
STUB.setKeyValue_forObject_key_value_(DO_TAKESTOREDVALUE_FORKEY, o, u'key5', u'V')
self.assertEquals(o.key5, u"VVVVV")
- self.assert_(not hasattr(o, u'key9'))
+ self.failIfHasAttr(o, u'key9')
STUB.setKeyValue_forObject_key_value_(DO_TAKESTOREDVALUE_FORKEY, o, u'key9', u'IX')
- self.assert_(hasattr(o, u'key9'))
+ self.failUnlessHasAttr(o, u'key9')
self.assertEquals(o.key9, u'IX')
def testStoredTakeValueForKey2(self):
@@ -198,7 +198,7 @@
self.assertEquals(o.key3, 3)
self.assertEquals(o._key4, u"4")
o.key5 = 1
- self.assert_(not hasattr(o, u'key9'))
+ self.failIfHasAttr(o, u'key9')
STUB.setKeyValue_forObject_key_value_(DO_TAKEVALUESFROMDICT, o, None,
{
@@ -211,7 +211,7 @@
self.assertEquals(o.key3, u"drie")
self.assertEquals(o._key4, u"viervierviervier")
self.assertEquals(o.key5, u"VVVVV")
- self.assert_(hasattr(o, u'key9'))
+ self.failUnlessHasAttr(o, u'key9')
self.assertEquals(o.key9, u'IX')
def testTakeValuesFromDictionary2(self):
@@ -359,9 +359,9 @@
STUB.setKeyValue_forObject_key_value_(DO_SETVALUE_FORKEY, o, u'key5', u'V')
self.assertEquals(o.key5, u"VVVVV")
- self.assert_(not hasattr(o, u'key9'))
+ self.failIfHasAttr(o, u'key9')
STUB.setKeyValue_forObject_key_value_(DO_SETVALUE_FORKEY, o, u'key9', u'IX')
- self.assert_(hasattr(o, u'key9'))
+ self.failUnlessHasAttr(o, u'key9')
self.assertEquals(o.key9, u'IX')
def testTakeValueForKey2(self):
@@ -379,7 +379,7 @@
self.assertEquals(o.key3, 3)
self.assertEquals(o._key4, u"4")
o.key5 = 1
- self.assert_(not hasattr(o, u'key9'))
+ self.failIfHasAttr(o, u'key9')
STUB.setKeyValue_forObject_key_value_(DO_SETVALUESFORKEYSFROMDICT, o, None,
{
@@ -392,7 +392,7 @@
self.assertEquals(o.key3, u"drie")
self.assertEquals(o._key4, u"viervierviervier")
self.assertEquals(o.key5, u"VVVVV")
- self.assert_(hasattr(o, u'key9'))
+ self.failUnlessHasAttr(o, u'key9')
self.assertEquals(o.key9, u'IX')
def testSetValuesForKeysFromDictionary2(self):
@@ -630,18 +630,22 @@
self.assertEquals(len(observer.observed), 0)
+ @min_os_level('10.5')
def testReceiveObserved(self):
# Create an object in Objective-C, add an observer and then
# pass the object to Python. Unless we take special care the
# Python wrapper will have the wrong type (that of the
# internal helper class).
+ #
+ # NOTE: This test is known to fail on OSX 10.5 due to the way
+ # KVO is implemented there.
observer = PyObjCTestObserver.alloc().init()
o = STUB.createObservedOfClass_observer_keyPath_(
NSObject, observer, u"observationInfo")
try:
- self.assert_(isinstance(o, NSObject))
+ self.failUnlessIsInstance(o, NSObject)
finally:
o.removeObserver_forKeyPath_(observer, u"observationInfo")
Modified: trunk/pyobjc/pyobjc-core/PyObjCTest/test_posing.py
==============================================================================
--- trunk/pyobjc/pyobjc-core/PyObjCTest/test_posing.py (original)
+++ trunk/pyobjc/pyobjc-core/PyObjCTest/test_posing.py Tue Oct 13 06:00:14 2009
@@ -6,8 +6,8 @@
#NSObject = objc.lookUpClass('NSObject')
# Use a class that isn't used in the rest of the testsuite,
-# should write a native class for this! NSPortCoder
-BaseName = 'NSPortCoder'
+# should write a native class for this!
+BaseName = 'NSAttributedString'
BaseClass = objc.lookUpClass(BaseName)
if sys.maxint >= 2 ** 32:
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference