[PyObjC-svn] r2582 - in trunk/pyobjc/pyobjc-framework-LaunchServices: Lib/LaunchServices PyObjCTest
[email protected] Sun, 15 Aug 2010 07:23:10 -0500
| Newsgroups | gmane.comp.python.pyobjc.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: ronaldoussoren
Date: Sun Aug 15 07:23:08 2010
New Revision: 2582
Log:
* Small updates to the metadata
* Add tests for more information, and explicit test failures for APIs that aren't
tested yet.
Modified:
trunk/pyobjc/pyobjc-framework-LaunchServices/Lib/LaunchServices/PyObjC.bridgesupport
trunk/pyobjc/pyobjc-framework-LaunchServices/Lib/LaunchServices/__init__.py
trunk/pyobjc/pyobjc-framework-LaunchServices/PyObjCTest/test_lsinfo.py
trunk/pyobjc/pyobjc-framework-LaunchServices/PyObjCTest/test_lsopen.py
trunk/pyobjc/pyobjc-framework-LaunchServices/PyObjCTest/test_lssharedfilelist.py
Modified: trunk/pyobjc/pyobjc-framework-LaunchServices/Lib/LaunchServices/PyObjC.bridgesupport
==============================================================================
--- trunk/pyobjc/pyobjc-framework-LaunchServices/Lib/LaunchServices/PyObjC.bridgesupport (original)
+++ trunk/pyobjc/pyobjc-framework-LaunchServices/Lib/LaunchServices/PyObjC.bridgesupport Sun Aug 15 07:23:08 2010
@@ -6,6 +6,7 @@
<depends_on path='/System/Library/Frameworks/Security.framework/Security' />
<depends_on path='/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/AE' />
<depends_on path='/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation' />
+ <struct name='LSItemInfoRecord' type='{LSItemInfoRecord="flags"I"filetype"I"creator"I"extension"^{__CFString}"iconFileName"^{__CFString}"kindID"I}' type64='{LSItemInfoRecord="flags"I"filetype"I"creator"I"extension"^{__CFString}}' />
<struct name='LSApplicationParameters' type='{LSApplicationParameters="version"i"flags"I"application"^{FSRef}"asyncLaunchRefCon"^v"environment"^{__CFDictionary}"argv"^{__CFArray}"initialEvent"^{AEDesc}}' type64='{LSApplicationParameters="version"q"flags"I"application"^{FSRef}"asyncLaunchRefCon"^v"environment"^{__CFDictionary}"argv"^{__CFArray}"initialEvent"^{AEDesc}}' />
<struct name='LSLaunchFSRefSpec' type='{LSLaunchFSRefSpec="appRef"^{FSRef}"numDocs"I"itemRefs"^{FSRef}"passThruParams"^{AEDesc}"launchFlags"I"asyncRefCon"^v}' type64='{LSLaunchFSRefSpec="appRef"^{FSRef}"numDocs"Q"itemRefs"^{FSRef}"passThruParams"^{AEDesc}"launchFlags"I"asyncRefCon"^v}' />
<struct name='LSLaunchURLSpec' type='{LSLaunchURLSpec="appURL"^{__CFURL}"itemURLs"^{__CFArray}"passThruParams"^{AEDesc}"launchFlags"I"asyncRefCon"^v}' type64='{LSLaunchURLSpec="appURL"^{__CFURL}"itemURLs"^{__CFArray}"passThruParams"^{AEDesc}"launchFlags"I"asyncRefCon"^v}' />
@@ -574,7 +575,7 @@
<retval type='l' type64='i' />
<arg type='^{__CFString=}' />
<arg type='L' type64='L' />
- <arg already_retained='true' type='^^{__CFURL}' type_modifier='o' />
+ <arg already_cfretained='true' type='^^{__CFURL}' type_modifier='o' />
</function>
<function name='LSCopyApplicationURLsForURL'>
<retval already_cfretained='true' type='^{__CFArray=}' />
@@ -593,19 +594,19 @@
<function name='LSCopyDisplayNameForRef'>
<retval type='l' type64='i' />
<arg type='^{FSRef=[80C]}' type_modifier='n' />
- <arg already_retained='true' type='^^{__CFString}' type_modifier='o' />
+ <arg already_cfretained='true' type='^^{__CFString}' type_modifier='o' />
</function>
<function name='LSCopyDisplayNameForURL'>
<retval type='l' type64='i' />
<arg type='^{__CFURL=}' />
- <arg already_retained='true' type='^^{__CFString}' type_modifier='o' />
+ <arg already_cfretained='true' type='^^{__CFString}' type_modifier='o' />
</function>
<function name='LSCopyItemAttribute'>
<retval type='l' type64='i' />
<arg type='^{FSRef=[80C]}' type_modifier='n' />
<arg type='L' type64='L' />
<arg type='^{__CFString=}' />
- <arg already_retained='true' type='^@' type_modifier='o' />
+ <arg already_cfretained='true' type='^@' type_modifier='o' />
</function>
<function name='LSCopyItemAttributes'>
<retval type='l' type64='i' />
@@ -618,35 +619,35 @@
<retval type='l' type64='i' />
<arg type='^{FSRef=[80C]}' type_modifier='n' />
<arg type='L' type64='L' />
- <arg type='^{LSItemInfoRecord=III^{__CFString}^{__CFString}I}' type64='^{LSItemInfoRecord=III^{__CFString}^{__CFString}I}' type_modifier='o' />
+ <arg type='^{LSItemInfoRecord=III^{__CFString}^{__CFString}I}' type64='^{LSItemInfoRecord=III^{__CFString}}' type_modifier='o' />
</function>
<function name='LSCopyItemInfoForURL'>
<retval type='l' type64='i' />
<arg type='^{__CFURL=}' />
<arg type='L' type64='L' />
- <arg type='^{LSItemInfoRecord=III^{__CFString}^{__CFString}I}' type64='^{LSItemInfoRecord=III^{__CFString}^{__CFString}I}' type_modifier='o' />
+ <arg type='^{LSItemInfoRecord=III^{__CFString}^{__CFString}I}' type64='^{LSItemInfoRecord=III^{__CFString}}' type_modifier='o' />
</function>
<function name='LSCopyKindStringForMIMEType'>
<retval type='l' type64='i' />
<arg type='^{__CFString=}' />
- <arg already_retained='true' type='^^{__CFString}' type_modifier='o' />
+ <arg already_cfretained='true' type='^^{__CFString}' type_modifier='o' />
</function>
<function name='LSCopyKindStringForRef'>
<retval type='l' type64='i' />
<arg type='^{FSRef=[80C]}' type_modifier='n' />
- <arg already_retained='true' type='^^{__CFString}' type_modifier='o' />
+ <arg already_cfretained='true' type='^^{__CFString}' type_modifier='o' />
</function>
<function name='LSCopyKindStringForTypeInfo'>
<retval type='l' type64='i' />
<arg type='L' type64='L' />
<arg type='L' type64='L' />
<arg type='^{__CFString=}' />
- <arg already_retained='true' type='^^{__CFString}' type_modifier='o' />
+ <arg already_cfretained='true' type='^^{__CFString}' type_modifier='o' />
</function>
<function name='LSCopyKindStringForURL'>
<retval type='l' type64='i' />
<arg type='^{__CFURL=}' />
- <arg already_retained='true' type='^^{__CFString}' type_modifier='o' />
+ <arg already_cfretained='true' type='^^{__CFString}' type_modifier='o' />
</function>
<function name='LSFindApplicationForInfo'>
<retval type='l' type64='i' />
@@ -654,7 +655,7 @@
<arg type='^{__CFString=}' />
<arg type='^{__CFString=}' />
<arg type='^{FSRef=[80C]}' type_modifier='o' />
- <arg already_retained='true' type='^^{__CFURL}' type_modifier='o' />
+ <arg already_cfretained='true' type='^^{__CFURL}' type_modifier='o' />
</function>
<function name='LSGetApplicationForInfo'>
<retval type='l' type64='i' />
@@ -663,21 +664,21 @@
<arg type='^{__CFString=}' />
<arg type='L' type64='L' />
<arg type='^{FSRef=[80C]}' type_modifier='o' />
- <arg already_retained='true' type='^^{__CFURL}' type_modifier='o' />
+ <arg already_cfretained='true' type='^^{__CFURL}' type_modifier='o' />
</function>
<function name='LSGetApplicationForItem'>
<retval type='l' type64='i' />
<arg type='^{FSRef=[80C]}' type_modifier='n' />
<arg type='L' type64='L' />
<arg type='^{FSRef=[80C]}' type_modifier='o' />
- <arg already_retained='true' type='^^{__CFURL}' type_modifier='o' />
+ <arg already_cfretained='true' type='^^{__CFURL}' type_modifier='o' />
</function>
<function name='LSGetApplicationForURL'>
<retval type='l' type64='i' />
<arg type='^{__CFURL=}' />
<arg type='L' type64='L' />
<arg type='^{FSRef=[80C]}' type_modifier='o' />
- <arg already_retained='true' type='^^{__CFURL}' type_modifier='o' />
+ <arg already_cfretained='true' type='^^{__CFURL}' type_modifier='o' />
</function>
<function name='LSGetExtensionInfo'>
<retval type='l' type64='i' />
@@ -701,7 +702,7 @@
<function name='LSOpenCFURLRef'>
<retval type='l' type64='i' />
<arg type='^{__CFURL=}' />
- <arg already_retained='true' type='^^{__CFURL}' type_modifier='o' />
+ <arg already_cfretained='true' type='^^{__CFURL}' type_modifier='o' />
</function>
<function name='LSOpenFSRef'>
<retval type='l' type64='i' />
@@ -716,7 +717,7 @@
<function name='LSOpenFromURLSpec'>
<retval type='l' type64='i' />
<arg type='^{LSLaunchURLSpec=^{__CFURL}^{__CFArray}^{AEDesc}I^v}' type_modifier='n' />
- <arg already_retained='true' type='^^{__CFURL}' type_modifier='o' />
+ <arg already_cfretained='true' type='^^{__CFURL}' type_modifier='o' />
</function>
<function name='LSOpenItemsWithRole'>
<retval type='l' type64='i' />
@@ -799,7 +800,7 @@
<function name='LSSharedFileListCopySnapshot'>
<retval already_cfretained='true' type='^{__CFArray=}' />
<arg type='^{OpaqueLSSharedFileListRef=}' />
- <arg type='^I' type64='^I' />
+ <arg type='^I' type64='^I' type_modifier='o' />
</function>
<function name='LSSharedFileListCreate'>
<retval type='^{OpaqueLSSharedFileListRef=}' already_cfretained='true' />
@@ -825,7 +826,7 @@
<arg type='^{__CFArray=}' />
</function>
<function name='LSSharedFileListInsertItemURL'>
- <retval type='^{OpaqueLSSharedFileListItemRef=}' />
+ <retval type='^{OpaqueLSSharedFileListItemRef=}' already_cfretained='true' />
<arg type='^{OpaqueLSSharedFileListRef=}' />
<arg type='^{OpaqueLSSharedFileListItemRef=}' />
<arg type='^{__CFString=}' />
Modified: trunk/pyobjc/pyobjc-framework-LaunchServices/Lib/LaunchServices/__init__.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-LaunchServices/Lib/LaunchServices/__init__.py (original)
+++ trunk/pyobjc/pyobjc-framework-LaunchServices/Lib/LaunchServices/__init__.py Sun Aug 15 07:23:08 2010
@@ -24,6 +24,8 @@
"/System/Library/Frameworks/ApplicationServices.framework/Frameworks/LaunchServices.framework"),
globals=globals())
+kLSRolesAll = -1
+
#
# Load an undocumented, yet announced function. This function was announced
# in TN2029 (http://developer.apple.com/technotes/tn/tn2029.html)
Modified: trunk/pyobjc/pyobjc-framework-LaunchServices/PyObjCTest/test_lsinfo.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-LaunchServices/PyObjCTest/test_lsinfo.py (original)
+++ trunk/pyobjc/pyobjc-framework-LaunchServices/PyObjCTest/test_lsinfo.py Sun Aug 15 07:23:08 2010
@@ -1,8 +1,20 @@
from PyObjCTools.TestSupport import *
from LaunchServices import *
+import sys
+import os
class TestLSInfo (TestCase):
+ def setUp(self):
+ self.path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'dummy.txt')
+ fp = open(self.path, 'w')
+ fp.write('test contents')
+ fp.close()
+
+ def tearDown(self):
+ if os.path.exists(self.path):
+ os.unlink(self.path)
+
def testConstants(self):
self.assertEqual(kLSAppInTrashErr, -10660)
self.assertEqual(kLSExecutableIncorrectFormat, -10661)
@@ -63,24 +75,174 @@
self.assertEqual(kLSAcceptDefault, 0x00000001)
self.assertEqual(kLSAcceptAllowLoginUI, 0x00000002)
+ self.assertIsInstance(kLSItemContentType, unicode)
+ self.assertIsInstance(kLSItemFileType, unicode)
+ self.assertIsInstance(kLSItemFileCreator, unicode)
+ self.assertIsInstance(kLSItemExtension, unicode)
+ self.assertIsInstance(kLSItemDisplayName, unicode)
+ self.assertIsInstance(kLSItemDisplayKind, unicode)
+ self.assertIsInstance(kLSItemRoleHandlerDisplayName, unicode)
+ self.assertIsInstance(kLSItemIsInvisible, unicode)
+ self.assertIsInstance(kLSItemExtensionIsHidden, unicode)
+ self.assertIsInstance(kLSItemQuarantineProperties, unicode)
+
+
+ self.assertEqual(kLSHandlerOptionsDefault, 0)
+ self.assertEqual(kLSHandlerOptionsIgnoreCreator, 1)
+
+
+ def testStructs(self):
+ v = LSItemInfoRecord()
+ self.assertHasAttr(v, 'flags')
+ self.assertHasAttr(v, 'filetype')
+ self.assertHasAttr(v, 'creator')
+ self.assertHasAttr(v, 'extension')
+ if sys.maxint < 2 ** 32:
+ self.assertHasAttr(v, 'iconFileName')
+ self.assertHasAttr(v, 'kindID')
+ else:
+ self.assertNotHasAttr(v, 'iconFileName')
+ self.assertNotHasAttr(v, 'kindID')
+
def testFunctions(self):
LSInit(kLSInitializeDefaults)
LSTerm()
- path = "/Library/Documents/Acknowledgements.rtf"
- url = CFURLCreateFromFileSystemRepresentation(None, path, len(path), True)
+ url = CFURLCreateFromFileSystemRepresentation(None, self.path, len(self.path), True)
self.assertIsInstance(url, CFURLRef)
ok, info = LSCopyItemInfoForURL(url, kLSRequestExtension|kLSRequestTypeCreator, None)
self.assertEqual(ok, 0)
self.assertIsInstance(info, LSItemInfoRecord)
- self.fail("Start at LSGetExtensionInfo")
+ self.assertArgIsOut(LSGetExtensionInfo, 2)
+ ok, info = LSGetExtensionInfo(len(self.path), self.path, None)
+ self.failUnlessEqual(ok, 0)
+ self.failUnlessEqual(info, self.path.index('.')+1)
+
+ self.assertArgIsOut(LSCopyDisplayNameForURL, 1)
+ self.assertArgIsCFRetained(LSCopyDisplayNameForURL, 1)
+ ok, info = LSCopyDisplayNameForURL(url, None)
+ self.assertEquals(ok, 0)
+ self.assertIsInstance(info, unicode)
+
+ self.assertArgIsBOOL(LSSetExtensionHiddenForURL, 1)
+ ok = LSSetExtensionHiddenForURL(url, True)
+ self.assertEquals(ok, 0)
+
+ self.assertArgIsOut(LSCopyKindStringForURL, 1)
+ self.assertArgIsCFRetained(LSCopyKindStringForURL, 1)
+ ok, info = LSCopyKindStringForURL(url, None)
+ self.assertEquals(ok, 0)
+ self.assertIsInstance(info, unicode)
+
+ self.assertArgIsOut(LSCopyKindStringForTypeInfo, 3)
+ self.assertArgIsCFRetained(LSCopyKindStringForTypeInfo, 3)
+ ok, info = LSCopyKindStringForTypeInfo(kLSUnknownType, kLSUnknownCreator, "jpg", None)
+ self.assertEquals(ok, 0)
+ self.assertIsInstance(info, unicode)
+
+ self.assertArgIsOut(LSCopyKindStringForMIMEType, 1)
+ self.assertArgIsCFRetained(LSCopyKindStringForMIMEType, 1)
+ ok, info = LSCopyKindStringForMIMEType("image/jpeg", None)
+ self.assertEquals(ok, 0)
+ self.assertIsInstance(info, unicode)
+
+ self.assertArgIsOut(LSGetApplicationForInfo, 4)
+ self.assertArgIsOut(LSGetApplicationForInfo, 5)
+ self.assertArgIsCFRetained(LSGetApplicationForInfo, 5)
+ ok, ref, url = LSGetApplicationForInfo(kLSUnknownType, kLSUnknownCreator, "txt", kLSRolesAll, None, None)
+ self.assertEquals(ok, 0)
+ self.assertIsInstance(ref, objc.FSRef)
+ self.assertIsInstance(url, CFURLRef)
+
+ self.assertArgIsOut(LSCopyApplicationForMIMEType, 2)
+ self.assertArgIsCFRetained(LSGetApplicationForInfo, 2)
+ ok, url = LSCopyApplicationForMIMEType("text/plain", kLSRolesAll, None)
+ self.assertEquals(ok, 0)
+ self.assertIsInstance(url, CFURLRef)
+
+ self.assertArgIsOut(LSGetApplicationForURL, 2)
+ self.assertArgIsOut(LSGetApplicationForURL, 3)
+ self.assertArgIsCFRetained(LSGetApplicationForURL, 3)
+ ok, ref, url = LSGetApplicationForURL(url, kLSRolesAll, None)
+ self.assertEquals(ok, 0)
+ self.assertIsInstance(ref, objc.FSRef)
+ self.assertIsInstance(url, CFURLRef)
+
+ self.assertArgIsOut(LSGetApplicationForURL, 3)
+ self.assertArgIsOut(LSGetApplicationForURL, 4)
+ self.assertArgIsCFRetained(LSGetApplicationForURL, 4)
+ ok, ref, url = LSGetApplicationForURL(kLSUnknownCreator, None, self.path, None, None)
+ self.assertEquals(ok, 0)
+ self.assertIsInstance(ref, objc.FSRef)
+ self.assertIsInstance(url, CFURLRef)
+
+ self.assertArgIsOut(LSCanURLAcceptURL, 4)
+ ok, status = LSCanURLAcceptURL(url, url, kLSRolesAll, kLSAcceptDefault, None)
+ self.assertIsInstance(ok, (int, long))
+ self.assertIsInstance(status, bool)
+
+ ok = LSRegisterURL(url, False)
+ self.assertIsInstance(ok, (int, long))
+
+
+ v = LSCopyApplicationURLsForURL(url, kLSRolesAll)
+ self.assertIsInstance(v, CFArrayRef)
+ for a in v:
+ self.assertIsInstance(a, CFURLRef)
+
+
+ default_role = LSCopyDefaultRoleHandlerForContentType("text.plain", kLSRolesAll)
+ self.assertIsInstance(default_role, unicode)
+
+ v = LSCopyAllRoleHandlersForContentType("text.plain", kLSRolesAll)
+ self.assertIsInstance(v, CFArrayRef)
+ for a in v:
+ self.assertIsInstance(a, unicode)
+
+
+ ok = LSSetDefaultRoleHandlerForContentType("text.plain", kLSRolesAll, default_role)
+ self.assertIsInstance(ok, (int, long))
+
+ v = LSGetHandlerOptionsForContentType("text.plain")
+ self.assertIsInstance(v, (int, long))
+
+ ok = LSSetHandlerOptionsForContentType("text.plain", v)
+ self.assertIsInstance(ok, (int, long))
+
+ self.assertResultIsCFRetained(LSCopyDefaultHandlerForURLScheme)
+ default_handler = LSCopyDefaultHandlerForURLScheme("http")
+ self.assertIsInstance(default_handler, unicode)
+
+ self.assertResultIsCFRetained(LSCopyAllHandlersForURLScheme)
+ v = LSCopyAllHandlersForURLScheme("http")
+ self.assertIsInstance(v, CFArrayRef)
+ for a in v:
+ self.assertIsInstance(a, unicode)
+
+ ok = LSSetDefaultHandlerForURLScheme("http", default_handler)
+ self.assertIsInstance(ok, (int, long))
+
+
+
+
+
+
def testFSRef(self):
self.fail('LSCopyItemInfoForRef')
+ self.fail('LSCopyDisplayNameForRef')
+ self.fail('LSSetExtensionHiddenForRef')
+ self.fail('LSCopyKindStringForRef')
+ self.fail('LSGetApplicationForItem')
+ self.fail('LSCanRefAcceptItem')
+ self.fail('LSRegisterFSRef')
+ self.fail('LSCopyItemAttribute')
+ self.fail('LSSetItemAttribute')
+
Modified: trunk/pyobjc/pyobjc-framework-LaunchServices/PyObjCTest/test_lsopen.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-LaunchServices/PyObjCTest/test_lsopen.py (original)
+++ trunk/pyobjc/pyobjc-framework-LaunchServices/PyObjCTest/test_lsopen.py Sun Aug 15 07:23:08 2010
@@ -1,8 +1,20 @@
from PyObjCTools.TestSupport import *
from LaunchServices import *
+import sys
+import os
class TestLSOpen (TestCase):
+ def setUp(self):
+ self.path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'dummy.txt')
+ fp = open(self.path, 'w')
+ fp.write('test contents')
+ fp.close()
+
+ def tearDown(self):
+ if os.path.exists(self.path):
+ os.unlink(self.path)
+
def testConstants(self):
self.assertEqual(kLSLaunchDefaults, 0x00000001)
self.assertEqual(kLSLaunchAndPrint, 0x00000002)
@@ -24,12 +36,28 @@
self.assertEqual(kLSLaunchHasUntrustedContents, 0x00400000)
def testStructs(self):
+ self.fail("LSLaunchFSRefSpec")
+ self.fail("LSLaunchFSRefSpec")
+ self.fail("LSApplicationParameters")
pass
-
- def testIncomplete(self):
- self.fail("Add header tests for <LaunchServices/LSOpen.h>")
+ def testFunctions(self):
+ url = CFURLCreateFromFileSystemRepresentation(None, self.path, len(self.path), True)
+ self.assertArgIsOut(LSOpenCFURLRef, 1)
+ ok, u = LSOpenCFURLRef(url, None)
+ self.assertEquals(ok, 0)
+ self.assertIsInstance(u, CFURLRef)
+
+ self.fail("LSOpenApplication")
+ self.fail("LSOpenItemsWithRole")
+ self.fail("LSOpenURLsWithRole")
+
+ def testFSRef(self):
+ self.fail("LSLaunchFSRefSpec")
+ self.fail("LSOpenFromRefSpec")
+ self.fail("LSOpenFromURLSpec")
+
if __name__ == "__main__":
main()
Modified: trunk/pyobjc/pyobjc-framework-LaunchServices/PyObjCTest/test_lssharedfilelist.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-LaunchServices/PyObjCTest/test_lssharedfilelist.py (original)
+++ trunk/pyobjc/pyobjc-framework-LaunchServices/PyObjCTest/test_lssharedfilelist.py Sun Aug 15 07:23:08 2010
@@ -3,9 +3,6 @@
from LaunchServices import *
class TestLSSharedFileList (TestCase):
- def testIncomplete(self):
- self.fail("Add header tests for <LaunchServices/LSSharedFileList.h>")
-
def testTypes(self):
self.assertIsCFType(LSSharedFileListRef)
self.assertIsCFType(LSSharedFileListItemRef)
@@ -57,11 +54,11 @@
self.assertResultIsCFRetained(LSSharedFileListCopyProperty)
self.assertResultHasType(LSSharedFileListCopyProperty, b'@')
- v = LSSharedFileListCopyProperty(lst, u"name")
+ v = LSSharedFileListCopyProperty(lst, u"pyobjc.name")
v = LSSharedFileListSetProperty(lst, u"pyobjc.name", u"value")
self.assertIsInstance(v, (int, long))
- v = LSSharedFileListCopyProperty(lst, u"name")
+ v = LSSharedFileListCopyProperty(lst, u"pyobjc.name")
self.assertEqual(v, u"value")
self.assertArgIsOut(LSSharedFileListCopySnapshot, 1)
@@ -110,14 +107,7 @@
-
-
-
-
-
-
-
-
+ @expectedFailure
def testMissing(self):
# Needs more infrastructure
self.fail('LSSharedFileListSetAuthorization')
------------------------------------------------------------------------------
This SF.net email is sponsored by
Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev