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:57:38 UTC
svn commit: r1836996 [3/3] - in /chemistry/cmislib/branches/py3_compat: ./
src/cmislib/ src/cmislib/atompub/ src/cmislib/browser/ src/tests/
Modified: chemistry/cmislib/branches/py3_compat/src/cmislib/util.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/cmislib/util.py?rev=1836996&r1=1836995&r2=1836996&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/cmislib/util.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/cmislib/util.py Sun Jul 29 16:57:38 2018
@@ -20,11 +20,13 @@
"""
This module contains handy utility functions.
"""
-import sys
+import datetime
+import logging
import re
+import sys
+
import iso8601
-import logging
-import datetime
+
from cmislib.domain import CmisId
if sys.version_info >= (3,):
@@ -52,7 +54,7 @@ if sys.version_info >= (3,):
else:
from urllib import urlencode, quote
- text_type = unicode
+ text_type = unicode # noqa F821
def to_native(source, encoding='utf-8', falsy_empty=False):
if not source and falsy_empty:
@@ -70,13 +72,12 @@ else:
return d.iteritems()
def is_unicode(value):
- return isinstance(value, unicode)
+ return isinstance(value, unicode) # noqa F821
moduleLogger = logging.getLogger('cmislib.util')
def to_utf8(value):
-
""" Safe encodng of value to utf-8 taking care of unicode values
"""
if is_unicode(value):
@@ -85,7 +86,6 @@ def to_utf8(value):
def safe_urlencode(in_dict):
-
"""
Safe encoding of values taking care of unicode values
urllib.urlencode doesn't like unicode values
@@ -101,7 +101,6 @@ def safe_urlencode(in_dict):
def safe_quote(value):
-
"""
Safe encoding of value taking care of unicode value
urllib.quote doesn't like unicode values
@@ -111,7 +110,6 @@ def safe_quote(value):
def multiple_replace(aDict, text):
-
"""
Replace in 'text' all occurences of any key in the given
dictionary by its corresponding value. Returns the new string.
@@ -127,7 +125,6 @@ def multiple_replace(aDict, text):
def parsePropValue(value, nodeName):
-
"""
Returns a properly-typed object based on the type as specified in the
node's element name.
@@ -155,7 +152,6 @@ def parsePropValue(value, nodeName):
def parsePropValueByType(value, typeName):
-
"""
Returns a properly-typed object based on the type as specified in the
node's property definition.
@@ -202,7 +198,6 @@ def parsePropValueByType(value, typeName
def parseDateTimeValue(value):
-
"""
Utility function to return a datetime from a string.
"""
@@ -211,12 +206,12 @@ def parseDateTimeValue(value):
elif type(value) == int:
return datetime.datetime.fromtimestamp(value / 1000)
else:
- moduleLogger.debug('Could not parse dt value of type: %s' % type(value))
+ moduleLogger.debug(
+ 'Could not parse dt value of type: %s' % type(value))
return
def parseBoolValue(value):
-
"""
Utility function to parse booleans and none from strings
"""
@@ -232,7 +227,6 @@ def parseBoolValue(value):
def toCMISValue(value):
-
"""
Utility function to convert Python values to CMIS string values
"""
Modified: chemistry/cmislib/branches/py3_compat/src/tests/conftest.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/tests/conftest.py?rev=1836996&r1=1836995&r2=1836996&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/tests/conftest.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/tests/conftest.py Sun Jul 29 16:57:38 2018
@@ -94,7 +94,7 @@ def cmis_conf(request):
request.cls.max_full_text_tries = MAX_FULL_TEXT_TRIES
for field in param._fields:
setattr(request.cls, field, getattr(param, field))
- request.cls.fixture_id = '{name}-{binding}'.format(
+ request.cls.fixture_id = '{name}-{binding}'.format(
name=param.env_name,
binding=param.binding.__class__.__name__
)
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=1836996&r1=1836995&r2=1836996&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:57:38 2018
@@ -32,23 +32,21 @@ class TestACL:
def testSupportedPermissions(self):
"""Test the value of supported permissions enum"""
if not self._repo.getCapabilities()['ACL']:
- print(messages.NO_ACL_SUPPORT)
- return
- assert self._repo.getSupportedPermissions() in ['basic', 'repository', 'both']
+ pytest.skip(messages.NO_ACL_SUPPORT)
+ assert self._repo.getSupportedPermissions() in [
+ 'basic', 'repository', 'both']
def testPermissionDefinitions(self):
"""Test the list of permission definitions"""
if not self._repo.getCapabilities()['ACL']:
- print(messages.NO_ACL_SUPPORT)
- return
+ pytest.skip(messages.NO_ACL_SUPPORT)
supportedPerms = self._repo.getPermissionDefinitions()
assert 'cmis:write' in supportedPerms
def testPermissionMap(self):
"""Test the permission mapping"""
if not self._repo.getCapabilities()['ACL']:
- print(messages.NO_ACL_SUPPORT)
- return
+ pytest.skip(messages.NO_ACL_SUPPORT)
permMap = self._repo.getPermissionMap()
assert 'canGetProperties.Object' in permMap
assert len(permMap['canGetProperties.Object']) > 0
@@ -56,15 +54,14 @@ class TestACL:
def testPropagation(self):
"""Test the propagation setting"""
if not self._repo.getCapabilities()['ACL']:
- print(messages.NO_ACL_SUPPORT)
- return
- assert self._repo.getPropagation() in ['objectonly', 'propagate', 'repositorydetermined']
+ pytest.skip(messages.NO_ACL_SUPPORT)
+ assert self._repo.getPropagation() in [
+ 'objectonly', 'propagate', 'repositorydetermined']
def testGetObjectACL(self):
"""Test getting an object's ACL"""
if not self._repo.getCapabilities()['ACL']:
- print(messages.NO_ACL_SUPPORT)
- return
+ pytest.skip(messages.NO_ACL_SUPPORT)
acl = self._testFolder.getACL()
for entry in acl.getEntries().values():
assert entry.principalId
@@ -73,14 +70,12 @@ class TestACL:
def testApplyACL(self):
"""Test updating an object's ACL"""
if not self._repo.getCapabilities()['ACL']:
- print(messages.NO_ACL_SUPPORT)
- return
+ pytest.skip(messages.NO_ACL_SUPPORT)
if not self._repo.getCapabilities()['ACL'] == 'manage':
- print('Repository does not support manage ACL')
- return
+ pytest.skip('Repository does not support manage ACL')
if not self._repo.getSupportedPermissions() in ['both', 'basic']:
- print('Repository needs to support either both or basic permissions for this test')
- return
+ pytest.skip('Repository needs to support either both or basic '
+ 'permissions for this test')
acl = self._testFolder.getACL()
acl.removeEntry(self.acl_principal_id)
acl.addEntry(self.acl_principal_id, 'cmis:write')
Modified: chemistry/cmislib/branches/py3_compat/src/tests/test_browser.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/tests/test_browser.py?rev=1836996&r1=1836995&r2=1836996&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/tests/test_browser.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/tests/test_browser.py Sun Jul 29 16:57:38 2018
@@ -32,7 +32,7 @@ class TestBrowserACL(unittest.TestCase):
def setUp(self):
self.aceUser1 = BrowserACE(
- principalId='user1',permissions='cmis:read', direct=True)
+ principalId='user1', permissions='cmis:read', direct=True)
self.aceUser2 = BrowserACE(
principalId='user2', permissions=['cmis:read', 'cmis:write'],
direct=False)
@@ -83,7 +83,7 @@ class TestBrowserACL(unittest.TestCase):
BrowserACE('user3', ['cmis:all', 'cmis:write'], True)
# add a new entry for an exising principal
self.acl.addEntry(
- self.aceUser1.principalId, ['cmis:read','cmis:write'])
+ self.aceUser1.principalId, ['cmis:read', 'cmis:write'])
addedAces = self.acl.getAddedAces()
assert len(addedAces) == 2
toCheck = None
Modified: chemistry/cmislib/branches/py3_compat/src/tests/test_changeentry.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/tests/test_changeentry.py?rev=1836996&r1=1836995&r2=1836996&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/tests/test_changeentry.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/tests/test_changeentry.py Sun Jul 29 16:57:38 2018
@@ -34,9 +34,8 @@ class TestChangeEntry:
# need to check changes capability
changeCap = self._repo.capabilities['Changes']
- if changeCap == None or changeCap == 'none':
- print(messages.NO_CHANGE_LOG_SUPPORT)
- return
+ if changeCap is None or changeCap == 'none':
+ pytest.skip(messages.NO_CHANGE_LOG_SUPPORT)
# at least one change should have been made due to the creation of the
# test documents
@@ -44,7 +43,8 @@ class TestChangeEntry:
assert len(rs) > 0
changeEntry = rs[0]
assert changeEntry.objectId
- assert changeEntry.changeType in ['created', 'updated', 'deleted', 'security']
+ assert changeEntry.changeType in [
+ 'created', 'updated', 'deleted', 'security']
assert changeEntry.changeTime
def testGetACL(self):
@@ -53,18 +53,15 @@ class TestChangeEntry:
# need to check changes capability
changeCap = self._repo.capabilities['Changes']
- if changeCap == None or changeCap == 'none':
- print(messages.NO_CHANGE_LOG_SUPPORT)
- return
+ if changeCap is None or changeCap == 'none':
+ pytest.skip(messages.NO_CHANGE_LOG_SUPPORT)
if changeCap == 'objectidsonly':
- print(messages.NO_CHANGE_OBJECT_SUPPORT)
- return
+ pytest.skip(messages.NO_CHANGE_OBJECT_SUPPORT)
# need to check ACL capability
if not self._repo.capabilities['ACL']:
- print(messages.NO_ACL_SUPPORT)
- return
+ pytest.skip(messages.NO_ACL_SUPPORT)
# need to test once with includeACL set to true
rs = self._repo.getContentChanges(includeACL='true')
@@ -92,21 +89,21 @@ class TestChangeEntry:
# need to check changes capability
changeCap = self._repo.capabilities['Changes']
- if changeCap == None or changeCap == 'none':
- print(messages.NO_CHANGE_LOG_SUPPORT)
- return
+ if changeCap is None or changeCap == 'none':
+ pytest.skip(messages.NO_CHANGE_LOG_SUPPORT)
if changeCap == 'objectidsonly':
- print(messages.NO_CHANGE_OBJECT_SUPPORT)
- return
+ pytest.skip(messages.NO_CHANGE_OBJECT_SUPPORT)
- # need to test once without includeProperties set. the objectID should be there
+ # need to test once without includeProperties set. the objectID
+ # should be there
rs = self._repo.getContentChanges()
assert len(rs) > 0
changeEntry = rs[0]
assert changeEntry.properties['cmis:objectId']
- # need to test once with includeProperties set. the objectID should be there plus object props
+ # need to test once with includeProperties set. the objectID
+ # should be there plus object props
if changeCap in ['properties', 'all']:
rs = self._repo.getContentChanges(includeProperties='true')
assert len(rs) > 0
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=1836996&r1=1836995&r2=1836996&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:57:38 2018
@@ -30,6 +30,7 @@ from .tools import skipIfAlfrescoPubBind
from .tools import skipIfAlfrescoBrowserBinding
from cmislib import util
+
@pytest.mark.usefixtures('cmis_env', 'binary_files')
class TestDocument:
@@ -40,7 +41,7 @@ class TestDocument:
props = {'cmis:objectTypeId': self.versionable_type_id}
newDoc = self._testFolder.createDocument(
'testDocument', properties=props)
- if not 'canCheckOut' in newDoc.allowableActions.keys():
+ if 'canCheckOut' not in newDoc.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwcDoc = newDoc.checkout()
try:
@@ -50,13 +51,13 @@ class TestDocument:
finally:
pwcDoc.delete()
- #CMIS-743
+ # CMIS-743
def testCheckoutAfterFetchByID(self):
"""Create a test doc, fetch it by ID, then check it out"""
props = {'cmis:objectTypeId': self.versionable_type_id}
newDoc = self._testFolder.createDocument(
'testDocument', properties=props)
- if not 'canCheckOut' in newDoc.allowableActions.keys():
+ if 'canCheckOut' not in newDoc.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
newDocIdStr = str(newDoc.id)
newDoc = self._repo.getObject(newDocIdStr)
@@ -77,7 +78,7 @@ class TestDocument:
testDoc = self._testFolder.createDocument(
testFilename, contentFile=f, properties=props)
assert testFilename == testDoc.getName()
- if not 'canCheckOut' in testDoc.allowableActions.keys():
+ if 'canCheckOut' not in testDoc.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwcDoc = testDoc.checkout()
@@ -99,15 +100,15 @@ class TestDocument:
testDoc = self._testFolder.createDocument(
testFilename, contentFile=f, properties=props)
assert testFilename == testDoc.getName()
- if not 'canCheckOut' in testDoc.allowableActions.keys():
+ if 'canCheckOut' not in testDoc.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwcDoc = testDoc.checkout()
try:
assert testDoc.isCheckedOut()
testDoc = pwcDoc.checkin(checkinComment='Just a few changes')
assert not testDoc.isCheckedOut()
- assert 'Just a few changes' == \
- testDoc.getProperties()['cmis:checkinComment']
+ assert ('Just a few changes' ==
+ testDoc.getProperties()['cmis:checkinComment'])
finally:
if testDoc.isCheckedOut():
pwcDoc.delete()
@@ -121,7 +122,7 @@ class TestDocument:
testDoc = self._testFolder.createDocument(
testFilename, contentFile=f, properties=props)
assert testFilename == testDoc.getName()
- if not 'canCheckOut' in testDoc.allowableActions.keys():
+ if 'canCheckOut' not in testDoc.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwcDoc = testDoc.checkout()
try:
@@ -157,7 +158,7 @@ class TestDocument:
"""Create a document in a test folder, check it out, call getPWC,
then checkin
"""
- if not self._repo.getCapabilities()['PWCUpdatable'] == True:
+ if not self._repo.getCapabilities()['PWCUpdatable']:
pytest.skip('Repository does not support PWCUpdatable, skipping')
testFilename = self.binary_filename_1
props = {'cmis:objectTypeId': self.versionable_type_id}
@@ -167,7 +168,7 @@ class TestDocument:
assert testFilename == testDoc.getName()
# Alfresco has a bug where if you get the PWC this way
# the checkin will not be successful
- if not 'canCheckOut' in testDoc.allowableActions.keys():
+ if 'canCheckOut' not in testDoc.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
testDoc.checkout()
pwcDoc = testDoc.getPrivateWorkingCopy()
@@ -187,7 +188,7 @@ class TestDocument:
props = {'cmis:objectTypeId': self.versionable_type_id}
newDoc = self._testFolder.createDocument(
'testDocument', properties=props)
- if not 'canCheckOut' in newDoc.allowableActions.keys():
+ if 'canCheckOut' not in newDoc.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwcDoc = newDoc.checkout()
try:
@@ -214,16 +215,16 @@ class TestDocument:
with open(self.binary_file_1, 'rb') as f:
doc10 = self._testFolder.createDocument(
fileName, contentFile=f, properties=props)
- if not 'canCheckOut' in doc10.allowableActions.keys():
+ if 'canCheckOut' not in doc10.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwc = doc10.checkout()
doc11 = pwc.checkin(major='false') # checkin a minor version, 1.1
- if not 'canCheckOut' in doc11.allowableActions.keys():
+ if 'canCheckOut' not in doc11.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwc = doc11.checkout()
doc20 = pwc.checkin() # checkin a major version, 2.0
doc20Id = doc20.getObjectId()
- if not 'canCheckOut' in doc20.allowableActions.keys():
+ if 'canCheckOut' not in doc20.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwc = doc20.checkout()
doc21 = pwc.checkin(major='false') # checkin a minor version, 2.1
@@ -242,18 +243,18 @@ class TestDocument:
with open(self.binary_file_1, 'rb') as f:
doc10 = self._testFolder.createDocument(
fileName, contentFile=f, properties=props)
- if not 'canCheckOut' in doc10.allowableActions.keys():
+ if 'canCheckOut' not in doc10.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwc = doc10.checkout()
doc11 = pwc.checkin(major='false') # checkin a minor version, 1.1
- if not 'canCheckOut' in doc11.allowableActions.keys():
+ if 'canCheckOut' not in doc11.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwc = doc11.checkout()
doc20 = pwc.checkin() # checkin a major version, 2.0
# what comes back from a checkin may not include all props, so reload
doc20.reload()
doc20Label = doc20.getProperties()['cmis:versionLabel']
- if not 'canCheckOut' in doc20.allowableActions.keys():
+ if 'canCheckOut' not in doc20.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwc = doc20.checkout()
doc21 = pwc.checkin(major='false') # checkin a minor version, 2.1
@@ -318,7 +319,7 @@ class TestDocument:
assert testFile1Size == os.path.getsize(exportFile1)
# checkout the file
- if newDoc.allowableActions.get('canCheckOut') == True:
+ if newDoc.allowableActions.get('canCheckOut'):
pass
else:
pytest.skip('The test doc cannot be checked out...skipping')
@@ -344,8 +345,8 @@ class TestDocument:
def testSetContentStreamPWCMimeType(self):
"""Check the mimetype after the PWC checkin"""
if self._repo.getCapabilities()['ContentStreamUpdatability'] == 'none':
- print('This repository does not allow content stream updates, skipping')
- return
+ pytest.skip('This repository does not allow content stream '
+ 'updates, skipping')
testFile1 = self.binary_file_1
fileName = testFile1.split('/')[-1]
@@ -358,7 +359,7 @@ class TestDocument:
origMimeType = newDoc.properties['cmis:contentStreamMimeType']
# checkout the file
- if not 'canCheckOut' in newDoc.allowableActions.keys():
+ if 'canCheckOut' not in newDoc.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwc = newDoc.checkout()
@@ -371,14 +372,15 @@ class TestDocument:
# CMIS-231 the checked in doc should have the same mime type as
# the original document
- assert origMimeType == \
- newDoc.properties['cmis:contentStreamMimeType']
+ assert (origMimeType ==
+ newDoc.properties['cmis:contentStreamMimeType'])
@skipIfAlfrescoPubBinding
@skipIfAlfrescoBrowserBinding
def testSetContentStreamDoc(self):
"""Set the content stream on a doc that's not checked out"""
- if self._repo.getCapabilities()['ContentStreamUpdatability'] != 'anytime':
+ if self._repo.getCapabilities()[
+ 'ContentStreamUpdatability'] != 'anytime':
pytest.skip('This repository does not allow content stream '
'updates on the doc, skipping')
@@ -424,7 +426,7 @@ class TestDocument:
pytest.skip(
'This repository does not allow content stream updates, '
'skipping')
- if not self._repo.getCapabilities()['PWCUpdatable'] == True:
+ if not self._repo.getCapabilities()['PWCUpdatable']:
pytest.skip('Repository does not support PWCUpdatable, skipping')
# create a test document
@@ -433,9 +435,8 @@ class TestDocument:
with open(self.binary_file_1, 'rb') as f:
newDoc = self._testFolder.createDocument(
fileName, contentFile=f, properties=props)
- if not 'canCheckOut' in newDoc.allowableActions.keys():
- print('The test doc cannot be checked out...skipping')
- return
+ if 'canCheckOut' not in newDoc.allowableActions.keys():
+ pytest.skip('The test doc cannot be checked out...skipping')
pwc = newDoc.checkout()
pwc.deleteContentStream()
with pytest.raises(CmisException):
@@ -457,8 +458,8 @@ class TestDocument:
exportFilename = testFilename.replace('.', 'export.')
with closing(result), open(exportFilename, 'wb') as outfile:
outfile.write(result.read())
- assert os.path.getsize(testFile) == \
- os.path.getsize(exportFilename)
+ assert (os.path.getsize(testFile) ==
+ os.path.getsize(exportFilename))
# cleanup
os.remove(exportFilename)
@@ -467,10 +468,13 @@ class TestDocument:
"""Create a new document from a string"""
documentName = 'testDocument'
contentString = 'Test content string'
- newDoc = self._testFolder.createDocumentFromString(documentName,
- contentString=contentString, contentType='text/plain')
+ newDoc = self._testFolder.createDocumentFromString(
+ documentName,
+ contentString=contentString,
+ contentType='text/plain')
assert documentName == newDoc.getName()
- assert util.to_native(newDoc.getContentStream().read()) == contentString
+ assert util.to_native(
+ newDoc.getContentStream().read()) == contentString
def testCreateDocumentPlain(self):
"""Create a plain document using a file from the file system"""
@@ -491,8 +495,8 @@ class TestDocument:
exportFilename = testFilename.replace('txt', 'export.txt')
with closing(result), open(exportFilename, 'wb') as outfile:
outfile.write(result.read())
- assert os.path.getsize(testFilename) == \
- os.path.getsize(exportFilename)
+ assert (os.path.getsize(testFilename) ==
+ os.path.getsize(exportFilename))
# export
os.remove(exportFilename)
@@ -502,27 +506,20 @@ class TestDocument:
"""Get all versions of an object"""
props = {'cmis:objectTypeId': self.versionable_type_id}
testDoc = self._testFolder.createDocument('testdoc', properties=props)
- if not 'canCheckOut' in testDoc.allowableActions.keys():
+ if 'canCheckOut' not in testDoc.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwc = testDoc.checkout()
doc = pwc.checkin() # 2.0
- if not 'canCheckOut' in doc.allowableActions.keys():
+ if 'canCheckOut' not in doc.allowableActions.keys():
pytest.skip('The test doc cannot be checked out...skipping')
pwc = doc.checkout()
doc = pwc.checkin() # 3.0
# what comes back from a checkin may not include all props, so reload
doc.reload()
# InMemory 0.9 is using 'V 3.0' so this test fails with that server
- #self.assertEquals('3.0', doc.getProperties()['cmis:versionLabel'])
+ # self.assertEquals('3.0', doc.getProperties()['cmis:versionLabel'])
rs = doc.getAllVersions()
assert 3 == len(rs.getResults())
-# for count in range(0, 3):
-# if count == 0:
-# self.assertEquals('true',
-# rs.getResults().values()[count].getProperties()['cmis:isLatestVersion'])
-# else:
-# self.assertEquals('false',
-# rs.getResults().values()[count].getProperties()['cmis:isLatestVersion'])
def testGetObjectParents(self):
"""Gets all object parents of an CmisObject"""
@@ -548,7 +545,9 @@ class TestDocument:
assert len(subFolder2.getChildren()) == 0
subFolder2.addObject(doc)
assert len(subFolder2.getChildren()) == 1
- assert subFolder1.getChildren()[0].name == subFolder2.getChildren()[0].name
+ assert (
+ subFolder1.getChildren()[0].name ==
+ subFolder2.getChildren()[0].name)
parentNames = ['sub1', 'sub2']
for parent in doc.getObjectParents():
parentNames.remove(parent.name)
@@ -589,7 +588,7 @@ class TestDocument:
testDoc = self._testFolder.createDocumentFromString(
'testdoc.txt', contentString='test', contentType='text/plain')
sleep(10)
- if testDoc.getAllowableActions().get('canGetRenditions') == True:
+ if testDoc.getAllowableActions().get('canGetRenditions'):
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=1836996&r1=1836995&r2=1836996&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:57:38 2018
@@ -70,7 +70,8 @@ class TestFolder:
assert isInResultSet(resultSet, grandChild)
# test getting descendants with depth=-1
- resultSet = self._testFolder.getDescendants() # -1 is the default depth
+ # -1 is the default depth
+ resultSet = self._testFolder.getDescendants()
assert resultSet is not None
assert 3 == len(resultSet.getResults())
assert isInResultSet(resultSet, childFolder1)
@@ -159,16 +160,18 @@ class TestFolder:
# should be filtered if the server chooses to do so.
# test when used with getObjectByPath
- searchFolder = self._repo.getObjectByPath(subFolderPath,
- filter='cmis:objectId,cmis:objectTypeId,cmis:baseTypeId')
+ searchFolder = self._repo.getObjectByPath(
+ subFolderPath,
+ filter='cmis:objectId,cmis:objectTypeId,cmis:baseTypeId')
assert subFolder.getObjectId() == searchFolder.getObjectId()
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 = self._repo.getObjectByPath(
+ subFolderPath,
+ filter='cmis:objectId,cmis:objectTypeId,cmis:baseTypeId')
searchFolder.reload()
assert subFolder.getObjectId() == searchFolder.getObjectId()
assert 'cmis:objectId' in searchFolder.getProperties()
@@ -176,16 +179,18 @@ class TestFolder:
assert 'cmis:baseTypeId' in searchFolder.getProperties()
# test when used with getObject
- searchFolder = self._repo.getObject(subFolder.getObjectId(),
- filter='cmis:objectId,cmis:objectTypeId,cmis:baseTypeId')
+ searchFolder = self._repo.getObject(
+ subFolder.getObjectId(),
+ filter='cmis:objectId,cmis:objectTypeId,cmis:baseTypeId')
assert subFolder.getObjectId() == searchFolder.getObjectId()
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 = self._repo.getObject(
+ subFolder.getObjectId(),
+ filter='cmis:objectId,cmis:objectTypeId,cmis:baseTypeId')
searchFolder.reload()
assert subFolder.getObjectId() == searchFolder.getObjectId()
assert 'cmis:objectId' in searchFolder.getProperties()
@@ -231,8 +236,7 @@ class TestFolder:
def testAddObject(self):
"""Add an existing object to another folder"""
if not self._repo.getCapabilities()['Multifiling']:
- print('This repository does not allow multifiling, skipping')
- return
+ pytest.skip('This repository does not allow multifiling, skipping')
subFolder1 = self._testFolder.createFolder('sub1')
doc = subFolder1.createDocument('testdoc1')
@@ -241,13 +245,14 @@ class TestFolder:
assert len(subFolder2.getChildren()) == 0
subFolder2.addObject(doc)
assert len(subFolder2.getChildren()) == 1
- assert subFolder1.getChildren()[0].name == subFolder2.getChildren()[0].name
+ assert (
+ subFolder1.getChildren()[0].name ==
+ subFolder2.getChildren()[0].name)
def testRemoveObject(self):
"""Remove an existing object from a secondary folder"""
if not self._repo.getCapabilities()['Unfiling']:
- print('This repository does not allow unfiling, skipping')
- return
+ pytest.skip('This repository does not allow unfiling, skipping')
subFolder1 = self._testFolder.createFolder('sub1')
doc = subFolder1.createDocument('testdoc1')
@@ -256,7 +261,9 @@ class TestFolder:
assert len(subFolder2.getChildren()) == 0
subFolder2.addObject(doc)
assert len(subFolder2.getChildren()) == 1
- assert subFolder1.getChildren()[0].name == subFolder2.getChildren()[0].name
+ assert (
+ subFolder1.getChildren()[0].name ==
+ subFolder2.getChildren()[0].name)
subFolder2.removeObject(doc)
assert len(subFolder2.getChildren()) == 0
assert len(subFolder1.getChildren()) == 1
@@ -278,7 +285,8 @@ class TestFolder:
def testBadParentFolder(self):
"""Try to create a folder on a bad/bogus/deleted parent
folder object"""
- firstFolder = self._testFolder.createFolder('testBadParentFolder folder')
+ firstFolder = self._testFolder.createFolder(
+ 'testBadParentFolder folder')
assert 'cmis:objectId' in firstFolder.getProperties()
firstFolder.delete()
# folder isn't in the repo anymore, but I still have the object
Modified: chemistry/cmislib/branches/py3_compat/src/tests/test_query.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/tests/test_query.py?rev=1836996&r1=1836995&r2=1836996&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/tests/test_query.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/tests/test_query.py Sun Jul 29 16:57:38 2018
@@ -46,7 +46,7 @@ class TestQuery:
with open(self.binary_file_2, 'rb') as f:
self._testContent2 = self._testFolder.createDocument(
testFileName.replace('.', '2.'), contentFile=f)
-
+
def testSimpleSelect(self):
"""Execute simple select star from cmis:document"""
querySimpleSelect = "SELECT * FROM cmis:document"
@@ -56,14 +56,16 @@ class TestQuery:
def testWildcardPropertyMatch(self):
"""Find content w/wildcard match on cmis:name property"""
name = self._testContent.getProperties()['cmis:name']
- querySimpleSelect = "SELECT * FROM cmis:document where cmis:name like '" + name[:7] + "%'"
+ querySimpleSelect = "SELECT * FROM cmis:document where " \
+ "cmis:name like '" + name[:7] + "%'"
resultSet = self._repo.query(querySimpleSelect)
assert isInResultSet(resultSet, self._testContent)
def testPropertyMatch(self):
"""Find content matching cmis:name property"""
name = self._testContent2.getProperties()['cmis:name']
- querySimpleSelect = "SELECT * FROM cmis:document where cmis:name = '" + name + "'"
+ querySimpleSelect = "SELECT * FROM cmis:document where " \
+ "cmis:name = '" + name + "'"
resultSet = self._repo.query(querySimpleSelect)
assert isInResultSet(resultSet, self._testContent2)
@@ -71,8 +73,9 @@ class TestQuery:
"""Find content matching cmis:name property"""
name = self._testContent2.getProperties()['cmis:name']
new_name = u'éà â¬Ã´' + name
- self._testContent2.updateProperties({'cmis:name': name})
- querySimpleSelect = "SELECT * FROM cmis:document where cmis:name = '" + name + "'"
+ self._testContent2.updateProperties({'cmis:name': new_name})
+ querySimpleSelect = "SELECT * FROM cmis:document where " \
+ "cmis:name = '" + new_name + "'"
resultSet = self._repo.query(querySimpleSelect)
assert isInResultSet(resultSet, self._testContent2)
@@ -90,8 +93,9 @@ class TestQuery:
found = isInResultSet(resultSet, self._testContent2)
if not found:
maxTries -= 1
- print('Not found...sleeping for 10 secs. Remaining tries:%d'
- % maxTries)
+ print(
+ 'Not found...sleeping for 10 secs. Remaining tries:%d'
+ % maxTries)
sleep(10)
assert found
@@ -112,6 +116,7 @@ class TestQuery:
found = isInResultSet(resultSet, self._testContent2)
if not found:
maxTries -= 1
- prin('Not found...sleeping for 10 secs. Remaining tries:%d' % maxTries)
+ print('Not found...sleeping for 10 secs. Remaining tries:%d'
+ % maxTries)
sleep(10)
assert found
Modified: chemistry/cmislib/branches/py3_compat/src/tests/test_repository.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/tests/test_repository.py?rev=1836996&r1=1836995&r2=1836996&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/tests/test_repository.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/tests/test_repository.py Sun Jul 29 16:57:38 2018
@@ -75,17 +75,19 @@ class TestRepository:
def testCreateDocument(self):
"""Create a new 'content-less' document"""
documentName = 'testDocument'
- newDoc = self._repo.createDocument(documentName, parentFolder=self._testFolder)
+ newDoc = self._repo.createDocument(
+ documentName, parentFolder=self._testFolder)
assert documentName == newDoc.getName()
def testCreateDocumentFromString(self):
"""Create a new document from a string"""
documentName = 'testDocument'
contentString = 'Test content string'
- newDoc = self._repo.createDocumentFromString(documentName,
- parentFolder=self._testFolder,
- contentString=contentString,
- contentType='text/plain')
+ newDoc = self._repo.createDocumentFromString(
+ documentName,
+ parentFolder=self._testFolder,
+ contentString=contentString,
+ contentType='text/plain')
assert documentName == newDoc.getName()
assert util.to_native(
newDoc.getContentStream().read()) == contentString
@@ -94,7 +96,8 @@ class TestRepository:
def testCreateDocumentUnicode(self):
"""Create a new doc with unicode characters in the name"""
documentName = u'abc cdeöäüÃ%§-_caféè.txt'
- newDoc = self._repo.createDocument(documentName, parentFolder=self._testFolder)
+ newDoc = self._repo.createDocument(
+ documentName, parentFolder=self._testFolder)
assert documentName == newDoc.getName()
def testGetObject(self):
@@ -115,20 +118,17 @@ class TestRepository:
doc10 = self._testFolder.createDocument(
fileName, contentFile=f, properties=props)
doc10Id = doc10.getObjectId()
- if not 'canCheckOut' in doc10.allowableActions.keys():
- print('The test doc cannot be checked out...skipping')
- return
+ if 'canCheckOut' not in doc10.allowableActions.keys():
+ pytest.skip('The test doc cannot be checked out...skipping')
pwc = doc10.checkout()
doc11 = pwc.checkin(major='false') # checkin a minor version, 1.1
- if not 'canCheckOut' in doc11.allowableActions.keys():
- print('The test doc cannot be checked out...skipping')
- return
+ if 'canCheckOut' not in doc11.allowableActions.keys():
+ pytest.skip('The test doc cannot be checked out...skipping')
pwc = doc11.checkout()
doc20 = pwc.checkin() # checkin a major version, 2.0
doc20Id = doc20.getObjectId()
- if not 'canCheckOut' in doc20.allowableActions.keys():
- print('The test doc cannot be checked out...skipping')
- return
+ if 'canCheckOut' not in doc20.allowableActions.keys():
+ pytest.skip('The test doc cannot be checked out...skipping')
pwc = doc20.checkout()
doc21 = pwc.checkin(major='false') # checkin a minor version, 2.1
doc21Id = doc21.getObjectId()
@@ -136,7 +136,8 @@ class TestRepository:
docLatest = self._repo.getObject(doc10Id, returnVersion='latest')
assert doc21Id == docLatest.getObjectId()
- docLatestMajor = self._repo.getObject(doc10Id, returnVersion='latestmajor')
+ docLatestMajor = self._repo.getObject(
+ doc10Id, returnVersion='latestmajor')
assert doc20Id == docLatestMajor.getObjectId()
def testGetFolder(self):
@@ -171,8 +172,9 @@ class TestRepository:
# ask the doc for its paths
searchDocPaths = doc.getPaths()
# for each path in the list, try to get the object by path
- # this is better than building a path with the doc's name b/c the name
- # isn't guaranteed to be used as the path segment (see CMIS-232)
+ # this is better than building a path with the doc's name b/c
+ # the name isn't guaranteed to be used as the path segment
+ # (see CMIS-232)
for path in searchDocPaths:
searchDoc = self._repo.getObjectByPath(path)
assert doc.getObjectId() == searchDoc.getObjectId()
@@ -203,12 +205,12 @@ class TestRepository:
assert len(subFolder2.getChildren()) == 1
assert doc.name == subFolder2.getChildren()[0].name
- #Exceptions
+ # Exceptions
def testGetObjectBadId(self):
"""Attempt to get an object using a known bad ID"""
- # this object ID is implementation specific (Alfresco) but is universally
- # bad so it should work for all repositories
+ # this object ID is implementation specific (Alfresco) but is
+ # universally bad so it should work for all repositories
with pytest.raises(ObjectNotFoundException):
self._repo.getObject(self._testFolder.getObjectId()[:-5] + 'BADID')
Modified: chemistry/cmislib/branches/py3_compat/src/tests/test_type.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/tests/test_type.py?rev=1836996&r1=1836995&r2=1836996&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/tests/test_type.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/tests/test_type.py Sun Jul 29 16:57:38 2018
@@ -50,8 +50,8 @@ class TestType:
"""Get the child types for this repository and make sure cmis:folder
is in the list."""
- #This test would be more interesting if there was a standard way to
- #deploy a custom model. Then we could look for custom types.
+ # This test would be more interesting if there was a standard way to
+ # deploy a custom model. Then we could look for custom types.
cmisClient = CmisClient(self.url, self.user, self.pwd,
binding=self.binding,
Modified: chemistry/cmislib/branches/py3_compat/src/tests/tools.py
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/src/tests/tools.py?rev=1836996&r1=1836995&r2=1836996&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/src/tests/tools.py (original)
+++ chemistry/cmislib/branches/py3_compat/src/tests/tools.py Sun Jul 29 16:57:38 2018
@@ -69,5 +69,6 @@ def skipIf(fixtureIds):
def skipIfAlfrescoBrowserBinding(func):
return skipIf(['alfresco-BrowserBinding'])(func)
+
def skipIfAlfrescoPubBinding(func):
- return skipIf(['alfresco-AtomPubBinding'])(func)
\ No newline at end of file
+ return skipIf(['alfresco-AtomPubBinding'])(func)
Modified: chemistry/cmislib/branches/py3_compat/tox.ini
URL: http://svn.apache.org/viewvc/chemistry/cmislib/branches/py3_compat/tox.ini?rev=1836996&r1=1836995&r2=1836996&view=diff
==============================================================================
--- chemistry/cmislib/branches/py3_compat/tox.ini (original)
+++ chemistry/cmislib/branches/py3_compat/tox.ini Sun Jul 29 16:57:38 2018
@@ -6,18 +6,15 @@
[tox]
envlist =
py27
- py34
- py35
+ #py34
+ #py35
py36
[testenv]
usedevelop = True
# todo --flake8
-commands = py.test --cov-config=.coveragerc --cov-branch --cov=src/cmislib {posargs}
+commands = py.test --flake8 --cov-config=.coveragerc --cov-branch --cov=src/cmislib {posargs}
deps =
pytest
pytest-cov
pytest-flake8
-
-[pytest]
-flake8-max-line-length = 120