cmis: reload object after folder creation (#73794) #57
|
@ -262,6 +262,7 @@ class CMISGateway:
|
|||
except ObjectNotFoundException:
|
||||
self._logger.debug("'%s' not found" % basepath)
|
||||
folder = folder.createFolder(path_part)
|
||||
folder = self.get_object(folder.getObjectId())
|
||||
self._logger.debug("create folder '%s'" % basepath)
|
||||
return folder
|
||||
|
||||
|
|
|
@ -314,10 +314,16 @@ def test_get_or_create_folder_already_existing(monkeypatch):
|
|||
|
||||
|
||||
def test_get_or_create_folder_one_level_creation(monkeypatch):
|
||||
whatever_folder = Mock()
|
||||
whatever_folder.getObjectId.return_value = '123'
|
||||
root_folder = Mock()
|
||||
root_folder.createFolder.return_value = 'folder'
|
||||
root_folder.createFolder.return_value = whatever_folder
|
||||
default_repository = Mock(
|
||||
rootFolder=root_folder, **{'getObjectByPath.side_effect': ObjectNotFoundException()}
|
||||
rootFolder=root_folder,
|
||||
**{
|
||||
'getObjectByPath.side_effect': ObjectNotFoundException(),
|
||||
'getObject.return_value': 'folder',
|
||||
},
|
||||
)
|
||||
cmis_client_cls = Mock(return_value=Mock(spec=CmisClient, defaultRepository=default_repository))
|
||||
import passerelle.apps.cmis.models
|
||||
|
@ -330,12 +336,17 @@ def test_get_or_create_folder_one_level_creation(monkeypatch):
|
|||
|
||||
|
||||
def test_get_or_create_folder_two_level_creation(monkeypatch):
|
||||
man_folder = Mock()
|
||||
man_folder.getObjectId.return_value = '456'
|
||||
whatever_folder_reloaded = Mock()
|
||||
whatever_folder_reloaded.createFolder.return_value = man_folder
|
||||
whatever_folder = Mock()
|
||||
whatever_folder.createFolder.return_value = 'folder'
|
||||
whatever_folder.getObjectId.return_value = '123'
|
||||
root_folder = Mock()
|
||||
root_folder.createFolder.return_value = whatever_folder
|
||||
default_repository = Mock(rootFolder=root_folder)
|
||||
default_repository.getObjectByPath.side_effect = ObjectNotFoundException()
|
||||
default_repository.getObject.side_effect = [whatever_folder_reloaded, 'folder']
|
||||
cmis_client_cls = Mock(return_value=Mock(spec=CmisClient, defaultRepository=default_repository))
|
||||
import passerelle.apps.cmis.models
|
||||
|
||||
|
@ -346,12 +357,12 @@ def test_get_or_create_folder_two_level_creation(monkeypatch):
|
|||
[call('/whatever/man'), call('/whatever'), call('/whatever/man')]
|
||||
)
|
||||
root_folder.createFolder.assert_called_once_with('whatever')
|
||||
whatever_folder.createFolder.assert_called_once_with('man')
|
||||
whatever_folder_reloaded.createFolder.assert_called_once_with('man')
|
||||
|
||||
|
||||
def test_get_or_create_folder_with_some_existing_and_some_not(monkeypatch):
|
||||
whatever_folder = Mock()
|
||||
whatever_folder.createFolder.return_value = 'folder'
|
||||
whatever_folder.getObjectId.return_value = '123'
|
||||
|
||||
def getObjectByPath(path):
|
||||
if path == '/whatever':
|
||||
|
@ -364,6 +375,7 @@ def test_get_or_create_folder_with_some_existing_and_some_not(monkeypatch):
|
|||
root_folder = Mock()
|
||||
default_repository = Mock(rootFolder=root_folder)
|
||||
default_repository.getObjectByPath.side_effect = getObjectByPath
|
||||
default_repository.getObject.return_value = 'folder'
|
||||
cmis_client_cls = Mock(return_value=Mock(spec=CmisClient, defaultRepository=default_repository))
|
||||
import passerelle.apps.cmis.models
|
||||
|
||||
|
|
Loading…
Reference in New Issue