You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by lm...@apache.org on 2018/07/29 16:52:37 UTC
svn commit: r1836989 - in /chemistry/cmislib/branches/py3_compat/src:
cmislib/atompub/binding.py cmislib/browser/binding.py cmislib/model.py
tests/test_acl.py tests/test_document.py tests/test_folder.py
Author: lmignon
Date: Sun Jul 29 16:52:37 2018
New Revision: 1836989
URL: http://svn.apache.org/viewvc?rev=1836989&view=rev
Log:
py3compat: replace 'has_key' with 'in' for dict
Modified:
chemistry/cmislib/branches/py3_compat/src/cmislib/atompub/binding.py
chemistry/cmislib/branches/py3_compat/src/cmislib/browser/binding.py
chemistry/cmislib/branches/py3_compat/src/cmislib/model.py
chemistry/cmislib/branches/py3_compat/src/tests/test_acl.py
chemistry/cmislib/branches/py3_compat/src/tests/test_document.py
chemistry/cmislib/branches/py3_compat/src/tests/test_folder.py
Modified: chemistry/cmislib/branches/py3_compat/src/cmislib/atompub/binding.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/cmislib/atompub/binding.py?rev=1836989&r1=1836988&r2=1836989&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/cmislib/atompub/binding.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/cmislib/atompub/binding.py Sun Jul 29 16:52:37 2018
@@ -391,7 +391,7 @@ class AtomPubCmisObject(CmisObject):
# if a returnVersion arg was passed in, it is possible we got back
# a different object ID than the value we started with, so it needs
# to be cleared out as well
- if options.has_key('returnVersion') or addOptions.has_key('returnVersion'):
+ if 'returnVersion' in options or 'returnVersion' in addOptions:
self._objectId = None
def _initData(self):
@@ -638,13 +638,13 @@ class AtomPubCmisObject(CmisObject):
# if we have a change token, we must pass it back, per the spec
args = {}
- if self.properties.has_key('cmis:changeToken') and self.properties['cmis:changeToken'] is not None:
+ if self.properties.get('cmis:changeToken') is not None:
self.logger.debug('Change token present, adding it to args')
args = {"changeToken": self.properties['cmis:changeToken']}
# the getEntryXmlDoc function may need the object type
objectTypeId = None
- if self.properties.has_key('cmis:objectTypeId') and not properties.has_key('cmis:objectTypeId'):
+ if 'cmis:objectTypeId' in self.properties and 'cmis:objectTypeId' not in properties:
objectTypeId = self.properties['cmis:objectTypeId']
self.logger.debug('This object type is:%s', objectTypeId)
@@ -1789,7 +1789,7 @@ class AtomPubRepository(object):
# hardcoding to cmis:document if it wasn't
# passed in via props
- if not properties.has_key('cmis:objectTypeId'):
+ if 'cmis:objectTypeId' not in properties:
properties['cmis:objectTypeId'] = CmisId('cmis:document')
# and if it was passed in, making sure it is a CmisId
elif not isinstance(properties['cmis:objectTypeId'], CmisId):
@@ -2396,7 +2396,7 @@ class AtomPubDocument(AtomPubCmisObject)
"""
# major = true is supposed to be the default but inmemory 0.9 is throwing an error 500 without it
- if not kwargs.has_key('major'):
+ if 'major' not in kwargs:
kwargs['major'] = 'true'
# Add checkin to kwargs and checkinComment, if it exists
@@ -2409,7 +2409,7 @@ class AtomPubDocument(AtomPubCmisObject)
else:
# the getEntryXmlDoc function may need the object type
objectTypeId = None
- if self.properties.has_key('cmis:objectTypeId') and not properties.has_key('cmis:objectTypeId'):
+ if 'cmis:objectTypeId' in self.properties and 'cmis:objectTypeId'not in properties:
objectTypeId = self.properties['cmis:objectTypeId']
self.logger.debug('This object type is:%s', objectTypeId)
@@ -2455,8 +2455,7 @@ class AtomPubDocument(AtomPubCmisObject)
u'2.0'
"""
- doc = None
- if kwargs.has_key('major') and kwargs['major'] == 'true':
+ if kwargs.get('major') == 'true':
doc = self._repository.getObject(self.getObjectId(), returnVersion='latestmajor')
else:
doc = self._repository.getObject(self.getObjectId(), returnVersion='latest')
@@ -2577,7 +2576,7 @@ class AtomPubDocument(AtomPubCmisObject)
# if we have a change token, we must pass it back, per the spec
args = {}
- if self.properties.has_key('cmis:changeToken') and self.properties['cmis:changeToken'] is not None:
+ if self.properties.get('cmis:changeToken') is not None:
self.logger.debug('Change token present, adding it to args')
args = {"changeToken": self.properties['cmis:changeToken']}
@@ -2616,7 +2615,7 @@ class AtomPubDocument(AtomPubCmisObject)
# if we have a change token, we must pass it back, per the spec
args = {}
- if self.properties.has_key('cmis:changeToken') and self.properties['cmis:changeToken'] is not None:
+ if self.properties.get('cmis:changeToken') is not None:
self.logger.debug('Change token present, adding it to args')
args = {"changeToken": self.properties['cmis:changeToken']}
@@ -2698,7 +2697,7 @@ class AtomPubFolder(AtomPubCmisObject):
properties['cmis:name'] = name
# hardcoding to cmis:folder if it wasn't passed in via props
- if not properties.has_key('cmis:objectTypeId'):
+ if 'cmis:objectTypeId' not in properties:
properties['cmis:objectTypeId'] = CmisId('cmis:folder')
# and checking to make sure the object type ID is an instance of CmisId
elif not isinstance(properties['cmis:objectTypeId'], CmisId):
@@ -3478,7 +3477,7 @@ class AtomPubACL(ACL):
if not self._entries:
self._entries = {ace.principalId: ace}
else:
- if self._entries.has_key(principalId):
+ if principalId in self._entries:
if access not in self._entries[principalId].permissions:
perms = self._entries[principalId].permissions
perms.append(access)
@@ -3504,7 +3503,7 @@ class AtomPubACL(ACL):
{u'GROUP_EVERYONE': <cmislib.model.ACE object at 0x100731410>, u'jdoe': <cmislib.model.ACE object at 0x100731150>, 'jpotts': <cmislib.model.ACE object at 0x1005a22d0>}
"""
- if self._entries.has_key(principalId):
+ if principalId in self._entries:
del self._entries[principalId]
if len(self._entries) == 0:
self.clearEntries()
@@ -4021,7 +4020,7 @@ def getEntryXmlDoc(repo=None, objectType
if properties:
# a name is required for most things, but not for a checkout
- if properties.has_key('cmis:name'):
+ if 'cmis:name' in properties:
titleElement = entryXmlDoc.createElementNS(ATOM_NS, "title")
titleText = entryXmlDoc.createTextNode(properties['cmis:name'])
titleElement.appendChild(titleText)
Modified: chemistry/cmislib/branches/py3_compat/src/cmislib/browser/binding.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/cmislib/browser/binding.py?rev=1836989&r1=1836988&r2=1836989&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/cmislib/browser/binding.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/cmislib/browser/binding.py Sun Jul 29 16:52:37 2018
@@ -221,7 +221,7 @@ class BrowserCmisObject(object):
# if a returnVersion arg was passed in, it is possible we got back
# a different object ID than the value we started with, so it needs
# to be cleared out as well
- if self._extArgs.has_key('returnVersion'):
+ if 'returnVersion' in self._extArgs:
self._objectId = None
def getObjectId(self):
@@ -294,7 +294,7 @@ class BrowserCmisObject(object):
if self._allowableActions == {}:
self.reload(includeAllowableActions=True)
- assert self.data.has_key('allowableActions'), "Expected object data to have an allowableActions key"
+ assert 'allowableActions' in self.data, "Expected object data to have an allowableActions key"
allowableActions = self.data['allowableActions']
self._allowableActions = allowableActions
@@ -732,9 +732,9 @@ class BrowserRepository(object):
'changesOnType': self.data['changesOnType'],
'principalIdAnonymous': self.data['principalIdAnonymous'],
'principalIdAnyone': self.data['principalIdAnyone']}
- if self.data.has_key('thinClientURI'):
+ if 'thinClientURI' in self.data:
repoInfo['thinClientURI'] = self.data['thinClientURI']
- if self.data.has_key('extendedFeatures'):
+ if 'extendedFeatures' in self.data:
repoInfo['extendedFeatures'] = self.data['extendedFeatures']
self._repositoryInfo = repoInfo
return self._repositoryInfo
@@ -795,8 +795,8 @@ class BrowserRepository(object):
if not self._permissions:
if self.data is None:
self.reload()
- if self.data.has_key('aclCapabilities'):
- if self.data['aclCapabilities'].has_key('supportedPermissions'):
+ if 'aclCapabilities' in self.data:
+ if 'supportedPermissions' in self.data['aclCapabilities']:
self._permissions = self.data['aclCapabilities']['supportedPermissions']
return self._permissions
@@ -915,7 +915,7 @@ class BrowserRepository(object):
if self.data is None:
self.reload()
caps = {}
- if self.data.has_key('capabilities'):
+ if 'capabilities' in self.data:
for cap in self.data['capabilities'].keys():
key = cap.replace('capability', '')
caps[key] = self.data['capabilities'][cap]
@@ -1364,7 +1364,7 @@ class BrowserRepository(object):
"propertyValue[0]": name}
props["propertyId[1]"] = "cmis:objectTypeId"
- if properties.has_key('cmis:objectTypeId'):
+ if 'cmis:objectTypeId' in properties:
props["propertyValue[1]"] = properties['cmis:objectTypeId']
del properties['cmis:objectTypeId']
else:
@@ -1805,7 +1805,7 @@ class BrowserDocument(BrowserCmisObject)
"""
# TODO implement optional arguments
# major = true is supposed to be the default but inmemory 0.9 is throwing an error 500 without it
- if not kwargs.has_key('major'):
+ if 'major' not in kwargs:
kwargs['major'] = 'true'
else:
kwargs['major'] = 'false'
@@ -1861,7 +1861,7 @@ class BrowserDocument(BrowserCmisObject)
"""
doc = None
- if kwargs.has_key('major') and kwargs['major'] == 'true':
+ if kwargs.get('major') == 'true':
doc = self._repository.getObject(self.getObjectId(), returnVersion='latestmajor')
else:
doc = self._repository.getObject(self.getObjectId(), returnVersion='latest')
@@ -1972,7 +1972,7 @@ class BrowserDocument(BrowserCmisObject)
props = {"objectId": self.id,
"cmisaction": "deleteContent"}
- if self.properties.has_key('cmis:changeToken'):
+ if 'cmis:changeToken' in self.properties:
props["changeToken"] = self.properties['cmis:changeToken']
# invoke the URL
@@ -2085,7 +2085,7 @@ class BrowserFolder(BrowserCmisObject):
"propertyValue[0]": name}
props["propertyId[1]"] = "cmis:objectTypeId"
- if properties.has_key('cmis:objectTypeId'):
+ if 'cmis:objectTypeId' in properties:
props["propertyValue[1]"] = properties['cmis:objectTypeId']
del properties['cmis:objectTypeId']
else:
@@ -2287,7 +2287,7 @@ class BrowserFolder(BrowserCmisObject):
"""
The optional filter argument is not yet supported.
"""
- if self.properties.has_key('cmis:parentId') and self.properties['cmis:parentId'] is not None:
+ if self.properties.get('cmis:parentId') is not None:
return BrowserFolder(self._cmisClient, self._repository, objectId=self.properties['cmis:parentId'])
def deleteTree(self, **kwargs):
@@ -2596,7 +2596,7 @@ class BrowserObjectType(ObjectType):
... print 'Open choice:%s' % prop.openChoice
"""
- if self.data is None or not self.data.has_key('propertyDefinitions'):
+ if self.data is None or 'propertyDefinitions' not in self.data:
self.reload()
props = {}
for prop in self.data['propertyDefinitions'].keys():
@@ -2816,7 +2816,7 @@ class BrowserACL(ACL):
{u'GROUP_EVERYONE': <cmislib.model.ACE object at 0x100731410>, u'jdoe': <cmislib.model.ACE object at 0x100731150>, 'jpotts': <cmislib.model.ACE object at 0x1005a22d0>}
"""
- if self._entries.has_key(principalId):
+ if principalId in self._entries:
del self._entries[principalId]
def clearEntries(self):
@@ -3385,7 +3385,7 @@ class TreeSerializer(object):
entries.append(cmisThing)
try:
dataObj = obj['children']
- # if obj['object'].has_key('children'):
+ # if 'children' in obj['object']:
# for child in obj['object']['children']:
childEntries = self.getEntries(client, repo, dataObj)
entries = entries + childEntries
Modified: chemistry/cmislib/branches/py3_compat/src/cmislib/model.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/cmislib/model.py?rev=1836989&r1=1836988&r2=1836989&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/cmislib/model.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/cmislib/model.py Sun Jul 29 16:52:37 2018
@@ -52,7 +52,7 @@ class CmisClient(object):
self.username = username
self.password = password
self.extArgs = kwargs
- if kwargs.has_key('binding') and (isinstance(kwargs['binding'], Binding)):
+ if 'binding' in kwargs and (isinstance(kwargs['binding'],Binding)):
self.binding = kwargs['binding']
else:
self.binding = AtomPubBinding(**kwargs)
Modified: chemistry/cmislib/branches/py3_compat/src/tests/test_acl.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/tests/test_acl.py?rev=1836989&r1=1836988&r2=1836989&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/tests/test_acl.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/tests/test_acl.py Sun Jul 29 16:52:37 2018
@@ -42,7 +42,7 @@ class TestACL:
print messages.NO_ACL_SUPPORT
return
supportedPerms = self._repo.getPermissionDefinitions()
- assert supportedPerms.has_key('cmis:write')
+ assert 'cmis:write' in supportedPerms
def testPermissionMap(self):
"""Test the permission mapping"""
@@ -50,7 +50,7 @@ class TestACL:
print messages.NO_ACL_SUPPORT
return
permMap = self._repo.getPermissionMap()
- assert permMap.has_key('canGetProperties.Object')
+ assert 'canGetProperties.Object' in permMap
assert len(permMap['canGetProperties.Object']) > 0
def testPropagation(self):
@@ -88,4 +88,4 @@ class TestACL:
# would be good to check that the permission we get back is what we set
# but at least one server (Alf) appears to map the basic perm to a
# repository-specific perm
- assert acl.getEntries().has_key(self.acl_principal_id)
+ assert self.acl_principal_id in acl.getEntries()
Modified: chemistry/cmislib/branches/py3_compat/src/tests/test_document.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/tests/test_document.py?rev=1836989&r1=1836988&r2=1836989&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/tests/test_document.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/tests/test_document.py Sun Jul 29 16:52:37 2018
@@ -318,8 +318,7 @@ class TestDocument:
assert testFile1Size == os.path.getsize(exportFile1)
# checkout the file
- if newDoc.allowableActions.has_key('canCheckOut') and \
- newDoc.allowableActions['canCheckOut'] == True:
+ if newDoc.allowableActions.get('canCheckOut') == True:
pass
else:
pytest.skip('The test doc cannot be checked out...skipping')
@@ -584,14 +583,13 @@ class TestDocument:
def testRenditions(self):
"""Get the renditions for a document"""
- if not self._repo.getCapabilities().has_key('Renditions'):
+ if 'Renditions' not in self._repo.getCapabilities():
pytest.skip('Repo does not support unfiling, skipping')
testDoc = self._testFolder.createDocumentFromString(
'testdoc.txt', contentString='test', contentType='text/plain')
sleep(10)
- if (testDoc.getAllowableActions().has_key('canGetRenditions') and
- testDoc.getAllowableActions()['canGetRenditions'] == True):
+ if testDoc.getAllowableActions().get('canGetRenditions') == True:
rends = testDoc.getRenditions()
assert len(rends) >= 1
else:
Modified: chemistry/cmislib/branches/py3_compat/src/tests/test_folder.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/tests/test_folder.py?rev=1836989&r1=1836988&r2=1836989&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/tests/test_folder.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/tests/test_folder.py Sun Jul 29 16:52:37 2018
@@ -162,42 +162,42 @@ class TestFolder:
searchFolder = self._repo.getObjectByPath(subFolderPath,
filter='cmis:objectId,cmis:objectTypeId,cmis:baseTypeId')
assert subFolder.getObjectId() == searchFolder.getObjectId()
- assert searchFolder.getProperties().has_key('cmis:objectId')
- assert searchFolder.getProperties().has_key('cmis:objectTypeId')
- assert searchFolder.getProperties().has_key('cmis:baseTypeId')
+ assert 'cmis:objectId' in searchFolder.getProperties()
+ assert 'cmis:objectTypeId' in searchFolder.getProperties()
+ assert 'cmis:baseTypeId' in searchFolder.getProperties()
# test when used with getObjectByPath + reload
searchFolder = self._repo.getObjectByPath(subFolderPath,
filter='cmis:objectId,cmis:objectTypeId,cmis:baseTypeId')
searchFolder.reload()
assert subFolder.getObjectId() == searchFolder.getObjectId()
- assert searchFolder.getProperties().has_key('cmis:objectId')
- assert searchFolder.getProperties().has_key('cmis:objectTypeId')
- assert searchFolder.getProperties().has_key('cmis:baseTypeId')
+ assert 'cmis:objectId' in searchFolder.getProperties()
+ assert 'cmis:objectTypeId' in searchFolder.getProperties()
+ assert 'cmis:baseTypeId' in searchFolder.getProperties()
# test when used with getObject
searchFolder = self._repo.getObject(subFolder.getObjectId(),
filter='cmis:objectId,cmis:objectTypeId,cmis:baseTypeId')
assert subFolder.getObjectId() == searchFolder.getObjectId()
- assert searchFolder.getProperties().has_key('cmis:objectId')
- assert searchFolder.getProperties().has_key('cmis:objectTypeId')
- assert searchFolder.getProperties().has_key('cmis:baseTypeId')
+ assert 'cmis:objectId' in searchFolder.getProperties()
+ assert 'cmis:objectTypeId' in searchFolder.getProperties()
+ assert 'cmis:baseTypeId' in searchFolder.getProperties()
# test when used with getObject + reload
searchFolder = self._repo.getObject(subFolder.getObjectId(),
filter='cmis:objectId,cmis:objectTypeId,cmis:baseTypeId')
searchFolder.reload()
assert subFolder.getObjectId() == searchFolder.getObjectId()
- assert searchFolder.getProperties().has_key('cmis:objectId')
- assert searchFolder.getProperties().has_key('cmis:objectTypeId')
- assert searchFolder.getProperties().has_key('cmis:baseTypeId')
+ assert 'cmis:objectId' in searchFolder.getProperties()
+ assert 'cmis:objectTypeId' in searchFolder.getProperties()
+ assert 'cmis:baseTypeId' in searchFolder.getProperties()
# test that you can do a reload with a reset filter
searchFolder.reload(filter='*')
- assert searchFolder.getProperties().has_key('cmis:objectId')
- assert searchFolder.getProperties().has_key('cmis:objectTypeId')
- assert searchFolder.getProperties().has_key('cmis:baseTypeId')
- assert searchFolder.getProperties().has_key('cmis:name')
+ assert 'cmis:objectId' in searchFolder.getProperties()
+ assert 'cmis:objectTypeId' in searchFolder.getProperties()
+ assert 'cmis:baseTypeId' in searchFolder.getProperties()
+ assert 'cmis:name' in searchFolder.getProperties()
def testUpdateProperties(self):
"""Create a test folder, then update its properties"""