Fix and unit test for CMIS-743 in which cmislib was failing to check out a doc after being fetched by ID

git-svn-id: https://svn.apache.org/repos/asf/chemistry/cmislib/trunk@1551272 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/cmislib.egg-info/SOURCES.txt b/src/cmislib.egg-info/SOURCES.txt
index 70c47fe..634eb67 100644
--- a/src/cmislib.egg-info/SOURCES.txt
+++ b/src/cmislib.egg-info/SOURCES.txt
@@ -24,38 +24,6 @@
 src/cmislib.egg-info/dependency_links.txt
 src/cmislib.egg-info/requires.txt
 src/cmislib.egg-info/top_level.txt
-src/doc/build/about.html
-src/doc/build/code.html
-src/doc/build/devguide.html
-src/doc/build/docs.html
-src/doc/build/examples.html
-src/doc/build/genindex.html
-src/doc/build/index.html
-src/doc/build/install.html
-src/doc/build/modindex.html
-src/doc/build/objects.inv
-src/doc/build/sample-data.html
-src/doc/build/search.html
-src/doc/build/searchindex.js
-src/doc/build/tests.html
-src/doc/build/_sources/about.txt
-src/doc/build/_sources/code.txt
-src/doc/build/_sources/devguide.txt
-src/doc/build/_sources/docs.txt
-src/doc/build/_sources/examples.txt
-src/doc/build/_sources/index.txt
-src/doc/build/_sources/install.txt
-src/doc/build/_sources/sample-data.txt
-src/doc/build/_sources/tests.txt
-src/doc/build/_static/basic.css
-src/doc/build/_static/default.css
-src/doc/build/_static/doctools.js
-src/doc/build/_static/file.png
-src/doc/build/_static/jquery.js
-src/doc/build/_static/minus.png
-src/doc/build/_static/plus.png
-src/doc/build/_static/pygments.css
-src/doc/build/_static/searchtools.js
 src/doc/src/Makefile
 src/doc/src/about.rst
 src/doc/src/code.rst
diff --git a/src/cmislib/atompub_binding.py b/src/cmislib/atompub_binding.py
index 8c2404a..43aea85 100644
--- a/src/cmislib/atompub_binding.py
+++ b/src/cmislib/atompub_binding.py
@@ -1487,7 +1487,7 @@
          - includeAllowableActions
         """
 
-        return getSpecializedObject(AtomPubCmisObject(self._cmisClient, self, objectId, **kwargs), **kwargs)
+        return getSpecializedObject(AtomPubCmisObject(self._cmisClient, self, CmisId(objectId), **kwargs), **kwargs)
 
     def getObjectByPath(self, path, **kwargs):
 
diff --git a/src/cmislib/browser_binding.py b/src/cmislib/browser_binding.py
index 0bf87ec..3154c46 100644
--- a/src/cmislib/browser_binding.py
+++ b/src/cmislib/browser_binding.py
@@ -1027,7 +1027,7 @@
          - includeAllowableActions
         """
 
-        return getSpecializedObject(BrowserCmisObject(self._cmisClient, self, objectId, **kwargs), **kwargs)
+        return getSpecializedObject(BrowserCmisObject(self._cmisClient, self, CmisId(objectId), **kwargs), **kwargs)
 
     def query(self, statement, **kwargs):
 
diff --git a/src/tests/cmislibtest.py b/src/tests/cmislibtest.py
index 8697bf9..43e9107 100644
--- a/src/tests/cmislibtest.py
+++ b/src/tests/cmislibtest.py
@@ -821,6 +821,26 @@
         finally:
             pwcDoc.delete()
 
+    #CMIS-743
+    def testCheckoutAfterFetchByID(self):
+        """Create a test doc, fetch it by ID, then check it out"""
+        props = {'cmis:objectTypeId': settings.VERSIONABLE_TYPE_ID}
+        newDoc = self._testFolder.createDocument('testDocument', properties=props)
+        if not newDoc.allowableActions['canCheckOut']:
+            print 'The test doc cannot be checked out...skipping'
+            return
+        newDocIdStr = str(newDoc.id)
+        newDoc = self._repo.getObject(newDocIdStr)
+        pwcDoc = newDoc.checkout()
+        try:
+            self.assertTrue(newDoc.isCheckedOut())
+            self.assert_('cmis:objectId' in newDoc.getProperties())
+            self.assert_('cmis:objectId' in pwcDoc.getProperties())
+            checkedOutDocs = self._repo.getCollection('checkedout')
+            self.assertTrue(isInResultSet(checkedOutDocs, pwcDoc))
+        finally:
+            pwcDoc.delete()
+
     def testCheckin(self):
         """Create a document in a test folder, check it out, then in"""
         testFilename = settings.TEST_BINARY_1.split('/')[-1]