def test_allowed_contenttypes(self): portal = self.layer['portal'] ff = ISelectableConstrainTypes(portal[defaults.FUNCTIONS_FOLDER_ID]) # not possible as test user self.assertEqual(len(ff.allowedContentTypes()), 0) # but if we become Manager setRoles(portal, TEST_USER_ID, ['Manager']) self.assertEqual(['Document', 'org.bccvl.content.function'], [fti.id for fti in ff.allowedContentTypes()]) # let's be Member again setRoles(portal, TEST_USER_ID, [])
def test_allowed_contenttypes(self): portal = self.layer['portal'] ff = ISelectableConstrainTypes(portal[defaults.FUNCTIONS_FOLDER_ID]) # not possible as test user self.assertEqual(len(ff.allowedContentTypes()), 0) # but if we become Manager setRoles(portal, TEST_USER_ID, ['Manager']) self.assertEqual(['Document', 'org.bccvl.content.function'], [fti.id for fti in ff.allowedContentTypes()]) # let's be Member again setRoles(portal, TEST_USER_ID, [])
def test_allowedContentTypesExit2(self): """ Constrains are acquired, parent folder is Plone Site """ behavior = ISelectableConstrainTypes(self.folder) types = behavior._getAddableTypesFor(self.portal, self.folder) behavior.setConstrainTypesMode(constrains.ACQUIRE) self.assertEqual(types, behavior.allowedContentTypes())
def test_allowedContentTypesExit1(self): """ Constrains are disabled, use the portal ones """ behavior = ISelectableConstrainTypes(self.folder) types = behavior._getAddableTypesFor(self.portal, self.folder) behavior.setConstrainTypesMode(constrains.DISABLED) self.assertEqual(types, behavior.allowedContentTypes())
def test_allowedContentTypesExit2(self): """ Constrains are acquired, parent folder is Plone Site """ behavior = ISelectableConstrainTypes(self.folder) types = behavior._getAddableTypesFor(self.portal, self.folder) behavior.setConstrainTypesMode(constrains.ACQUIRE) self.assertEqual(types, behavior.allowedContentTypes())
def test_allowedContentTypesExit1(self): """ Constrains are disabled, use the portal ones """ behavior = ISelectableConstrainTypes(self.folder) types = behavior._getAddableTypesFor(self.portal, self.folder) behavior.setConstrainTypesMode(constrains.DISABLED) self.assertEqual(types, behavior.allowedContentTypes())
def test_allowedContentTypesExit4(self): """ Constrains are enabled """ behavior = ISelectableConstrainTypes(self.folder) behavior.setLocallyAllowedTypes(self.types_id_subset) behavior.setConstrainTypesMode(constrains.ENABLED) self.assertEqual(self.types_id_subset, [x.getId() for x in behavior.allowedContentTypes()])
def test_allowedContentTypesExit4(self): """ Constrains are enabled """ behavior = ISelectableConstrainTypes(self.folder) behavior.setLocallyAllowedTypes(self.types_id_subset) behavior.setConstrainTypesMode(constrains.ENABLED) self.assertEqual(self.types_id_subset, [x.getId() for x in behavior.allowedContentTypes()])
def test_allowedContentTypesExit3(self): """ Constrains are acquired, parent folder is of same type """ outer_behavior = ISelectableConstrainTypes(self.folder) assert len(outer_behavior.getLocallyAllowedTypes()) > 2 outer_behavior.setLocallyAllowedTypes(self.types_id_subset) outer_behavior.setConstrainTypesMode(constrains.ENABLED) behavior = ISelectableConstrainTypes(self.inner_folder) behavior.setConstrainTypesMode(constrains.ACQUIRE) self.assertEquals(self.types_id_subset, [x.getId() for x in behavior.allowedContentTypes()])
def test_allowedContentTypesExit3(self): """ Constrains are acquired, parent folder is of same type """ outer_behavior = ISelectableConstrainTypes(self.folder) assert len(outer_behavior.getLocallyAllowedTypes()) > 2 outer_behavior.setLocallyAllowedTypes(self.types_id_subset) outer_behavior.setConstrainTypesMode(constrains.ENABLED) behavior = ISelectableConstrainTypes(self.inner_folder) behavior.setConstrainTypesMode(constrains.ACQUIRE) self.assertEqual(self.types_id_subset, [x.getId() for x in behavior.allowedContentTypes()])
def test_locallyAllowedTypesDefaultWhenDisabled(self): """ Constrain Mode Disabled. We get the default constrains, independent of what our parent folder or we ourselves defined """ behavior = ISelectableConstrainTypes(self.inner_folder) behavior.setConstrainTypesMode(constrains.DISABLED) behavior.setLocallyAllowedTypes([]) outer_behavior = ISelectableConstrainTypes(self.folder) outer_behavior.setConstrainTypesMode(constrains.ENABLED) outer_behavior.setLocallyAllowedTypes([]) types = self.default_types type_ids = [t.getId() for t in types] self.assertEqual(types, behavior.allowedContentTypes()) self.assertEqual(type_ids, behavior.getLocallyAllowedTypes())
def test_locallyAllowedTypesDefaultWhenDisabled(self): """ Constrain Mode Disabled. We get the default constrains, independent of what our parent folder or we ourselves defined """ behavior = ISelectableConstrainTypes(self.inner_folder) behavior.setConstrainTypesMode(constrains.DISABLED) behavior.setLocallyAllowedTypes([]) outer_behavior = ISelectableConstrainTypes(self.folder) outer_behavior.setConstrainTypesMode(constrains.ENABLED) outer_behavior.setLocallyAllowedTypes([]) types = self.default_types type_ids = [t.getId() for t in types] self.assertEqual(types, behavior.allowedContentTypes()) self.assertEqual(type_ids, behavior.getLocallyAllowedTypes())
def test_locallyAllowedTypesDefaultWhenEnabled(self): """ Constrain Mode enabled We get the set constrains, independent of what our parent folder defined """ behavior = ISelectableConstrainTypes(self.inner_folder) behavior.setConstrainTypesMode(constrains.ENABLED) behavior.setLocallyAllowedTypes(self.types_id_subset) outer_behavior = ISelectableConstrainTypes(self.folder) outer_behavior.setConstrainTypesMode(constrains.ENABLED) outer_behavior.setLocallyAllowedTypes([]) types = [t for t in self.default_types if t.getId() in self.types_id_subset] type_ids = self.types_id_subset self.assertEqual(types, behavior.allowedContentTypes()) self.assertEqual(type_ids, behavior.getLocallyAllowedTypes())
def test_locallyAllowedTypesDefaultWhenEnabled(self): """ Constrain Mode enabled We get the set constrains, independent of what our parent folder defined """ behavior = ISelectableConstrainTypes(self.inner_folder) behavior.setConstrainTypesMode(constrains.ENABLED) behavior.setLocallyAllowedTypes(self.types_id_subset) outer_behavior = ISelectableConstrainTypes(self.folder) outer_behavior.setConstrainTypesMode(constrains.ENABLED) outer_behavior.setLocallyAllowedTypes([]) types = [ t for t in self.default_types if t.getId() in self.types_id_subset ] type_ids = self.types_id_subset self.assertEqual(types, behavior.allowedContentTypes()) self.assertEqual(type_ids, behavior.getLocallyAllowedTypes())
def test_locallyAllowedTypesDefaultWhenAcquired(self): """ Constrain Mode set to ACQUIRE Try to acquire the constrains, if that fails, use the defaults """ behavior = ISelectableConstrainTypes(self.inner_folder) behavior.setConstrainTypesMode(constrains.ACQUIRE) behavior.setLocallyAllowedTypes([]) outer_behavior = ISelectableConstrainTypes(self.folder) outer_behavior.setConstrainTypesMode(constrains.ENABLED) outer_behavior.setLocallyAllowedTypes(self.types_id_subset) types = self.types_id_subset self.assertEqual(types, behavior.getLocallyAllowedTypes()) outer_behavior.setConstrainTypesMode(constrains.ACQUIRE) types = self.default_types type_ids = [t.getId() for t in types] self.assertEqual(types, behavior.allowedContentTypes()) self.assertEqual(type_ids, behavior.getLocallyAllowedTypes())
def test_locallyAllowedTypesDefaultWhenAcquired(self): """ Constrain Mode set to ACQUIRE Try to acquire the constrains, if that fails, use the defaults """ behavior = ISelectableConstrainTypes(self.inner_folder) behavior.setConstrainTypesMode(constrains.ACQUIRE) behavior.setLocallyAllowedTypes([]) outer_behavior = ISelectableConstrainTypes(self.folder) outer_behavior.setConstrainTypesMode(constrains.ENABLED) outer_behavior.setLocallyAllowedTypes(self.types_id_subset) types = self.types_id_subset self.assertEqual(types, behavior.getLocallyAllowedTypes()) outer_behavior.setConstrainTypesMode(constrains.ACQUIRE) types = self.default_types type_ids = [t.getId() for t in types] self.assertEqual(types, behavior.allowedContentTypes()) self.assertEqual(type_ids, behavior.getLocallyAllowedTypes())