You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by jp...@apache.org on 2010/11/02 14:58:30 UTC

svn commit: r1030044 - in /incubator/chemistry/cmislib/trunk/src: cmislib/model.py tests/cmislibtest.py

Author: jpotts
Date: Tue Nov  2 13:58:30 2010
New Revision: 1030044

URL: http://svn.apache.org/viewvc?rev=1030044&view=rev
Log:
Applied patch CMIS-256

Modified:
    incubator/chemistry/cmislib/trunk/src/cmislib/model.py
    incubator/chemistry/cmislib/trunk/src/tests/cmislibtest.py

Modified: incubator/chemistry/cmislib/trunk/src/cmislib/model.py
URL: http://svn.apache.org/viewvc/incubator/chemistry/cmislib/trunk/src/cmislib/model.py?rev=1030044&r1=1030043&r2=1030044&view=diff
==============================================================================
--- incubator/chemistry/cmislib/trunk/src/cmislib/model.py (original)
+++ incubator/chemistry/cmislib/trunk/src/cmislib/model.py Tue Nov  2 13:58:30 2010
@@ -1690,8 +1690,6 @@ class CmisObject(object):
 
     def getObjectParents(self):
         """
-        This has not yet been implemented.
-
         See CMIS specification document 2.2.3.5 getObjectParents
 
         The following optional arguments are not supported:
@@ -1701,9 +1699,20 @@ class CmisObject(object):
          - includeAllowableActions
          - includeRelativePathSegment
         """
+        # get the appropriate 'up' link
+        parentUrl = self._getLink(UP_REL)
 
-        # TODO To be implemented
-        raise NotImplementedError
+        if parentUrl == None:
+            raise NotSupportedException('Root folder does not support getObjectParents')
+
+        # invoke the URL
+        result = self._cmisClient.get(parentUrl)
+
+        if type(result) == HTTPError:
+            raise CmisException(result.code)
+
+        # return the result set
+        return ResultSet(self._cmisClient, self._repository, result)
 
     def getAllowableActions(self):
 

Modified: incubator/chemistry/cmislib/trunk/src/tests/cmislibtest.py
URL: http://svn.apache.org/viewvc/incubator/chemistry/cmislib/trunk/src/tests/cmislibtest.py?rev=1030044&r1=1030043&r2=1030044&view=diff
==============================================================================
--- incubator/chemistry/cmislib/trunk/src/tests/cmislibtest.py (original)
+++ incubator/chemistry/cmislib/trunk/src/tests/cmislibtest.py Tue Nov  2 13:58:30 2010
@@ -23,7 +23,8 @@ from cmislib.model import CmisClient, AC
 from cmislib.exceptions import \
                           ObjectNotFoundException, \
                           PermissionDeniedException, \
-                          CmisException
+                          CmisException, \
+                          NotSupportedException
 from cmislib import messages
 import os
 from time import sleep, time
@@ -1050,6 +1051,17 @@ class DocumentTest(CmisTestBase):
 #                self.assertEquals('false',
 #                             rs.getResults().values()[count].getProperties()['cmis:isLatestVersion'])
 
+    def testGetObjectParents(self):
+        '''Gets all object parents of an CmisObject'''
+        childFolder = self._testFolder.createFolder('parentTest')
+        parentFolder = childFolder.getObjectParents().getResults()[0]
+        self.assertEquals(self._testFolder.getObjectId(), parentFolder.getObjectId())
+
+    def testGetObjectParentsWithinRootFolder(self):
+        '''Gets all object parents of a root folder'''
+        rootFolder = self._repo.getRootFolder()
+        self.assertRaises(NotSupportedException, rootFolder.getObjectParents)
+
 
 class TypeTest(unittest.TestCase):