def setUp(self): super(TestDexterityRelatedItemsViewlet, self).setUp() """ create some sample content to test with """ from Products.CMFPlone.utils import get_installer setRoles(self.portal, TEST_USER_ID, ['Manager']) fti = DexterityFTI('Dexterity Item with relatedItems behavior') self.portal.portal_types._setObject( 'Dexterity Item with relatedItems behavior', fti) fti.klass = 'plone.dexterity.content.Item' test_module = 'plone.app.layout.viewlets.tests.test_content' fti.schema = test_module + '.IMyDexterityItem' fti.behaviors = ('plone.app.relationfield.behavior.IRelatedItems',) fti = DexterityFTI('Dexterity Item without relatedItems behavior') self.portal.portal_types._setObject( 'Dexterity Item without relatedItems behavior', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = test_module + '.IMyDexterityItem' self.folder.invokeFactory('Document', 'doc1', title='Document 1') self.folder.invokeFactory('Document', 'doc2', title='Document 2') self.folder.invokeFactory( 'Dexterity Item with relatedItems behavior', 'dex1') self.folder.invokeFactory( 'Dexterity Item with relatedItems behavior', 'dex2') self.folder.invokeFactory( 'Dexterity Item without relatedItems behavior', 'dex3') qi = get_installer(self.portal) qi.install_product('plone.app.intid') intids = getUtility(IIntIds) self.folder.dex1.relatedItems = [ RelationValue(intids.getId(self.folder.doc1)), RelationValue(intids.getId(self.folder.doc2)), ]
def setUp(self): self.portal = self.layer['portal'] self.request = self.layer['request'] # TYPE 1 type1_fti = DexterityFTI('type1') type1_fti.klass = 'plone.dexterity.content.Container' type1_fti.filter_content_types = True type1_fti.allowed_content_types = [] type1_fti.behaviors = ('plone.app.dexterity.behaviors.metadata.IBasic') self.portal.portal_types._setObject('type1', type1_fti) self.type1_fti = type1_fti # TYPE 2 type2_fti = DexterityFTI('type1') type2_fti.klass = 'plone.dexterity.content.Item' type2_fti.filter_content_types = True type2_fti.allowed_content_types = [] type2_fti.behaviors = ('plone.app.dexterity.behaviors.metadata.IBasic') self.portal.portal_types._setObject('type2', type2_fti) self.type2_fti = type2_fti login(self.portal, TEST_USER_NAME) setRoles(self.portal, TEST_USER_ID, ['Manager']) self.portal.invokeFactory('type1', id='it1', title='Item 1') self.portal.invokeFactory('type2', id='it2', title='Item 2')
def setUp(self): super(TestDexterityRelatedItemsViewlet, self).setUp() """ create some sample content to test with """ from Products.CMFPlone.utils import get_installer setRoles(self.portal, TEST_USER_ID, ['Manager']) fti = DexterityFTI('Dexterity Item with relatedItems behavior') self.portal.portal_types._setObject( 'Dexterity Item with relatedItems behavior', fti) fti.klass = 'plone.dexterity.content.Item' test_module = 'plone.app.layout.viewlets.tests.test_content' fti.schema = test_module + '.IMyDexterityItem' fti.behaviors = ('plone.app.relationfield.behavior.IRelatedItems', ) fti = DexterityFTI('Dexterity Item without relatedItems behavior') self.portal.portal_types._setObject( 'Dexterity Item without relatedItems behavior', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = test_module + '.IMyDexterityItem' self.folder.invokeFactory('Document', 'doc1', title='Document 1') self.folder.invokeFactory('Document', 'doc2', title='Document 2') self.folder.invokeFactory('Dexterity Item with relatedItems behavior', 'dex1') self.folder.invokeFactory('Dexterity Item with relatedItems behavior', 'dex2') self.folder.invokeFactory( 'Dexterity Item without relatedItems behavior', 'dex3') qi = get_installer(self.portal) qi.install_product('plone.app.intid') intids = getUtility(IIntIds) self.folder.dex1.relatedItems = [ RelationValue(intids.getId(self.folder.doc1)), RelationValue(intids.getId(self.folder.doc2)), ]
def setUp(self): self.portal = self.layer['portal'] self.request = self.layer['request'] # TYPE 1 type1_fti = DexterityFTI('type1') type1_fti.klass = 'plone.dexterity.content.Container' type1_fti.filter_content_types = True type1_fti.allowed_content_types = [] type1_fti.behaviors = ( 'plone.app.dexterity.behaviors.metadata.IBasic', ) self.portal.portal_types._setObject('type1', type1_fti) self.type1_fti = type1_fti # TYPE 2 type2_fti = DexterityFTI('type1') type2_fti.klass = 'plone.dexterity.content.Item' type2_fti.filter_content_types = True type2_fti.allowed_content_types = [] type2_fti.behaviors = ( 'plone.app.dexterity.behaviors.metadata.IBasic', ) self.portal.portal_types._setObject('type2', type2_fti) self.type2_fti = type2_fti login(self.portal, TEST_USER_NAME) setRoles(self.portal, TEST_USER_ID, ['Manager']) self.portal.invokeFactory('type1', id='it1', title='Item 1') self.portal.invokeFactory('type2', id='it2', title='Item 2')
def afterSetUp(self): """ create some sample content to test with """ if not HAS_DEXTERITY: return self.setRoles(('Manager',)) fti = DexterityFTI('Dexterity Item with relatedItems behavior') self.portal.portal_types._setObject( 'Dexterity Item with relatedItems behavior', fti) fti.klass = 'plone.dexterity.content.Item' test_module = 'plone.app.layout.viewlets.tests.test_content' fti.schema = test_module + '.IMyDexterityItem' fti.behaviors = ('plone.app.relationfield.behavior.IRelatedItems',) fti = DexterityFTI('Dexterity Item without relatedItems behavior') self.portal.portal_types._setObject( 'Dexterity Item without relatedItems behavior', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = test_module + '.IMyDexterityItem' self.folder.invokeFactory('Document', 'doc1', title='Document 1') self.folder.invokeFactory('Document', 'doc2', title='Document 2') self.folder.invokeFactory( 'Dexterity Item with relatedItems behavior', 'dex1') self.folder.invokeFactory( 'Dexterity Item with relatedItems behavior', 'dex2') self.folder.invokeFactory( 'Dexterity Item without relatedItems behavior', 'dex3') self.portal.portal_quickinstaller.installProduct('plone.app.intid') intids = getUtility(IIntIds) self.folder.dex1.relatedItems = [ RelationValue(intids.getId(self.folder.doc1)), RelationValue(intids.getId(self.folder.doc2)), ]
def afterSetUp(self): """ create some sample content to test with """ if not HAS_DEXTERITY: return self.setRoles(('Manager', )) fti = DexterityFTI('Dexterity Item with relatedItems behavior') self.portal.portal_types._setObject( 'Dexterity Item with relatedItems behavior', fti) fti.klass = 'plone.dexterity.content.Item' test_module = 'plone.app.layout.viewlets.tests.test_content' fti.schema = test_module + '.IMyDexterityItem' fti.behaviors = ('plone.app.relationfield.behavior.IRelatedItems', ) fti = DexterityFTI('Dexterity Item without relatedItems behavior') self.portal.portal_types._setObject( 'Dexterity Item without relatedItems behavior', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = test_module + '.IMyDexterityItem' self.folder.invokeFactory('Document', 'doc1', title='Document 1') self.folder.invokeFactory('Document', 'doc2', title='Document 2') self.folder.invokeFactory('Dexterity Item with relatedItems behavior', 'dex1') self.folder.invokeFactory('Dexterity Item with relatedItems behavior', 'dex2') self.folder.invokeFactory( 'Dexterity Item without relatedItems behavior', 'dex3') self.portal.portal_quickinstaller.installProduct('plone.app.intid') intids = getUtility(IIntIds) self.folder.dex1.relatedItems = [ RelationValue(intids.getId(self.folder.doc1)), RelationValue(intids.getId(self.folder.doc2)), ]
def afterSetUp(self): """ create some sample content to test with """ # HTTPRequest's 'set' function is set to it's original implementation # at the start of each new test, since otherwise the below monkey # patch will apply to all remaining tests (and break them); see # comment below in 'disableEventCountHelper' HTTPRequest.set = set_orig self.setRoles(('Manager',)) fti = DexterityFTI('My Dexterity Item') self.portal.portal_types._setObject('My Dexterity Item', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = 'plone.app.linkintegrity.tests.test_dexterity.IMyDexterityItem' fti.behaviors = ('plone.app.referenceablebehavior.referenceable.IReferenceable',) fti = DexterityFTI('Non referenciable Dexterity Item') self.portal.portal_types._setObject('Non referenciable Dexterity Item', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = 'plone.app.linkintegrity.tests.test_dexterity.IMyDexterityItem' self.portal.invokeFactory('My Dexterity Item', id='dexterity_item1', title='Dexterity Item 1') self.portal.invokeFactory('My Dexterity Item', id='dexterity_item2', title='Dexterity Item 2') self.portal.invokeFactory('Non referenciable Dexterity Item', id='nonreferenciable_dexterity_item1', title='Non referenciable Dexterity Item 1') self.portal.invokeFactory('Non referenciable Dexterity Item', id='nonreferenciable_dexterity_item2', title='Non referenciable Dexterity Item 2')
def afterSetUp(self): """ create some sample content to test with """ if not HAS_DEXTERITY: return self.setRoles(('Manager',)) fti = DexterityFTI('My Dexterity Item') self.portal.portal_types._setObject('My Dexterity Item', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = 'plone.app.linkintegrity.tests.test_dexterity.IMyDexterityItem' fti.behaviors = ('plone.app.referenceablebehavior.referenceable.IReferenceable',) fti = DexterityFTI('Non referenciable Dexterity Item') self.portal.portal_types._setObject('Non referenciable Dexterity Item', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = 'plone.app.linkintegrity.tests.test_dexterity.IMyDexterityItem'
def setup_ftis(portal): types_tool = portal.portal_types # Simplelayout Container fti = DexterityFTI("SampleContainer") fti.schema = "ftw.simplelayout.tests.sample_types.ISampleSimplelayoutContainerSchema" fti.klass = "ftw.simplelayout.tests.sample_types.SampleContainer" fti.behaviors = ( "ftw.simplelayout.interfaces.ISimplelayout", "plone.app.dexterity.behaviors.metadata.IBasic", "plone.app.content.interfaces.INameFromTitle", "collective.dexteritytextindexer.behavior.IDexterityTextIndexer", ) fti.default_view = "@@simplelayout-view" types_tool._setObject("SampleContainer", fti) # Simplelayout Block fti = DexterityFTI("SampleBlock") fti.schema = "ftw.simplelayout.tests.sample_types.ISampleDXBlockSchema" fti.klass = "ftw.simplelayout.tests.sample_types.SampleBlock" fti.default_view = "block_view" fti.behaviors = ( "ftw.simplelayout.interfaces.ISimplelayoutBlock", "plone.app.lockingbehavior.behaviors.ILocking", "plone.app.content.interfaces.INameFromTitle", ) types_tool._setObject("SampleBlock", fti) # Simplelayout folderish Block fti = DexterityFTI("SampleFolderishBlock") fti.schema = "ftw.simplelayout.tests.sample_types.ISampleDXBlockSchema" fti.klass = "ftw.simplelayout.tests.sample_types.SampleFolderishBlock" fti.default_view = "block_view" fti.global_allow = False fti.behaviors = ( "ftw.simplelayout.interfaces.ISimplelayoutBlock", "plone.app.lockingbehavior.behaviors.ILocking", "plone.app.content.interfaces.INameFromTitle", ) types_tool._setObject("SampleFolderishBlock", fti) folderishblock_fti = types_tool.get("SampleFolderishBlock") folderishblock_fti.allowed_content_types = ("SampleContainer",) contentpage_fti = types_tool.get("SampleContainer") contentpage_fti.allowed_content_types = ("SampleBlock",)
def setUp(self): app = self.layer['app'] self.portal = self.layer['portal'] self.request = self.layer['request'] self.portal_url = self.portal.absolute_url() setRoles(self.portal, TEST_USER_ID, ['Contributor']) fti = DexterityFTI('leadimagefolder') self.portal.portal_types._setObject('leadimagefolder', fti) fti.klass = 'plone.dexterity.content.Container' fti.behaviors = ( 'plone.app.contenttypes.behaviors.leadimage.ILeadImageBehavior', ) self.fti = fti alsoProvides(self.portal.REQUEST, IPloneAppContenttypesLayer) alsoProvides(self.request, IPloneAppContenttypesLayer) from plone.app.contenttypes.behaviors.leadimage import ILeadImage alsoProvides(self.request, ILeadImage) self.portal.invokeFactory('leadimagefolder', id='leadimagefolder', title=u'Folder with a lead image') import transaction transaction.commit() # Set up browser self.browser = Browser(app) self.browser.handleErrors = False self.browser.addHeader( 'Authorization', 'Basic {0}:{1}'.format( SITE_OWNER_NAME, SITE_OWNER_PASSWORD, ))
def setUp(self): app = self.layer['app'] self.portal = self.layer['portal'] self.wf = api.portal.get_tool('portal_workflow') self.portal.acl_users._doAddUser('user_std', 'secret', ['Member'], []) self.portal_url = self.portal.absolute_url() setRoles(self.portal, TEST_USER_ID, ['Manager']) fti = DexterityFTI(self.portal_type) self.portal.portal_types._setObject(self.portal_type, fti) fti.klass = 'plone.dexterity.content.Item' fti.behaviors = self.behaviors api.content.create( container=self.portal, type=self.portal_type, id='doc1') setRoles(self.portal, TEST_USER_ID, ['Member']) import transaction transaction.commit() # Set up browser self.browser = Browser(app) self.browser.handleErrors = False self.browser.addHeader( 'Authorization', 'Basic {0}:{1}'.format(SITE_OWNER_NAME, SITE_OWNER_PASSWORD,) )
def setUp(self): self.portal = self.layer["portal"] self.request = self.layer["request"] self.catalog = api.portal.get_tool("portal_catalog") setRoles(self.portal, TEST_USER_ID, ["Manager"]) fti = DexterityFTI("venueitem") self.portal.portal_types._setObject("venueitem", fti) fti.klass = "plone.dexterity.content.Item" fti.behaviors = ( "plone.app.content.interfaces.INameFromTitle", "plone.app.dexterity.behaviors.metadata.IBasic", "plone.app.dexterity.behaviors.metadata.ICategorization", "collective.geolocationbehavior.geolocation.IGeolocatable", "design.plone.contenttypes.behavior.additional_help_infos", "design.plone.contenttypes.behavior.argomenti", "plone.leadimage", "volto.preview_image", "collective.address.behaviors.IAddress", "design.plone.contenttypes.behavior.luogo", "collective.dexteritytextindexer", ) self.fti = fti self.portal.invokeFactory("venueitem", id="venue", title="venue") self.venue = self.portal.venue commit()
def setUp(self): app = self.layer['app'] self.portal = self.layer['portal'] self.request = self.layer['request'] self.portal_url = self.portal.absolute_url() setRoles(self.portal, TEST_USER_ID, ['Contributor']) fti = DexterityFTI('tocdocument') self.portal.portal_types._setObject('tocdocument', fti) fti.klass = 'plone.dexterity.content.Item' fti.behaviors = ( 'plone.app.contenttypes.behaviors.tableofcontents.' 'ITableOfContents', ) self.fti = fti alsoProvides(self.portal.REQUEST, IPloneAppContenttypesLayer) alsoProvides(self.request, IPloneAppContenttypesLayer) from plone.app.contenttypes.behaviors.tableofcontents \ import ITableOfContents alsoProvides(self.request, ITableOfContents) self.portal.invokeFactory( 'tocdocument', id='tocdoc', title=u'Document with a table of contents' ) import transaction transaction.commit() # Set up browser self.browser = Browser(app) self.browser.handleErrors = False self.browser.addHeader( 'Authorization', 'Basic {0}:{1}'.format(SITE_OWNER_NAME, SITE_OWNER_PASSWORD,) )
def setUp(self): self.portal = self.layer['portal'] self.request = self.layer['request'] self.portal_url = self.portal.absolute_url() setRoles(self.portal, TEST_USER_ID, ['Manager']) fti = DexterityFTI('collectioncontainer') self.portal.portal_types._setObject('collectioncontainer', fti) fti.klass = 'plone.dexterity.content.Container' fti.behaviors = ( 'plone.app.contenttypes.behaviors.collection.ICollection', ) self.fti = fti alsoProvides(self.portal.REQUEST, IPloneAppContenttypesLayer) alsoProvides(self.request, IPloneAppContenttypesLayer) from plone.app.contenttypes.behaviors.collection import ICollection alsoProvides(self.request, ICollection) self.portal.invokeFactory( 'collectioncontainer', id='collectioncontainer', title=u'Container with a collection', customViewFields=['Title', 'portal_type'], query=query, ) self.portal.invokeFactory( 'Document', id='doc', title=u'Collection Test Page', )
def afterSetUp(self): """ create some sample content to test with """ if not HAS_DEXTERITY: return self.setRoles(('Manager', )) fti = DexterityFTI('My Dexterity Item') self.portal.portal_types._setObject('My Dexterity Item', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = 'plone.app.linkintegrity.tests.test_dexterity.IMyDexterityItem' fti.behaviors = ( 'plone.app.referenceablebehavior.referenceable.IReferenceable', ) fti = DexterityFTI('Non referenciable Dexterity Item') self.portal.portal_types._setObject('Non referenciable Dexterity Item', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = 'plone.app.linkintegrity.tests.test_dexterity.IMyDexterityItem'
def setUpContentTypes(self, portal): from plone.dexterity.fti import DexterityFTI from plone.dexterity.fti import register from plone.app.content.interfaces import INameFromTitle from plone.app.dexterity.behaviors.metadata import IOwnership from collective.multilingual.interfaces import IMultilingual bs = ( dottedName(IMultilingual), dottedName(IOwnership), dottedName(INameFromTitle), ) content_types = [ ("Item", "Item", (), bs), ("Container", "Container", ("Item", "Container"), bs), ] # Set up Dexterity-based content types. for portal_type, klass, allowed_content_types, bs in content_types: fti = DexterityFTI(portal_type) fti.allowed_content_types = allowed_content_types fti.behaviors = bs fti.klass = "plone.dexterity.content." + klass register(fti) # There's got to be a better way :-) portal.portal_types._setOb(portal_type, fti)
def setUp(self): self.app = self.layer["app"] self.request = self.layer["request"] self.portal = self.layer["portal"] self.portal_url = self.portal.absolute_url() setRoles(self.portal, TEST_USER_ID, ["Manager"]) # set up blocksdocument content type with IBlock behavior fti = DexterityFTI("blocksdocument") self.portal.portal_types._setObject("blocksdocument", fti) fti.klass = "plone.dexterity.content.Container" fti.behaviors = ("volto.blocks", ) self.portal.invokeFactory("blocksdocument", id="doc") self.doc = self.portal["doc"] alsoProvides(self.doc, IBlocks) # Set up a mock mailhost self.portal._original_MailHost = self.portal.MailHost self.portal.MailHost = mailhost = MockMailHost('MailHost') sm = getSiteManager(context=self.portal) sm.unregisterUtility(provided=IMailHost) sm.registerUtility(mailhost, provided=IMailHost) # We need to fake a valid mail setup registry = getUtility(IRegistry) mail_settings = registry.forInterface(IMailSchema, prefix='plone') mail_settings.email_from_address = '*****@*****.**' self.mailhost = self.portal.MailHost transaction.commit()
def test_dexterity_item(self): # prepare a fti portal_type = 'testtype' fti = DexterityFTI(portal_type) fti.klass = 'plone.dexterity.content.Item' fti.schema = Interface.__identifier__ self.portal.portal_types._setObject(portal_type, fti) register(fti) # prepare an item item = Item('testitem') item.portal_type = portal_type self.portal._setObject(item.id, item) item = self.portal[item.id] john = create(Builder('user').with_roles('Reader', on=item)) item.reindexObject() catalog = getToolByName(self.portal, 'portal_catalog') result = catalog(principal_with_local_roles=[john.getId()]) self.assertEquals(1, len(result), 'Expect one entry') self.assertEquals(result[0].getPath(), '/'.join(item.getPhysicalPath()))
def add_item_type(portal): fti = DexterityFTI('item') portal.portal_types._setObject('item', fti) fti.klass = 'plone.dexterity.content.Item' fti.filter_content_types = False fti.behaviors = ('plone.app.dexterity.behaviors.metadata.IBasic') return fti
def setUp(self): app = self.layer['app'] self.portal = self.layer['portal'] self.wf = api.portal.get_tool('portal_workflow') self.portal.acl_users._doAddUser('user_std', 'secret', ['Member'], []) self.portal_url = self.portal.absolute_url() setRoles(self.portal, TEST_USER_ID, ['Manager']) fti = DexterityFTI(self.portal_type) self.portal.portal_types._setObject(self.portal_type, fti) fti.klass = 'plone.dexterity.content.Item' fti.behaviors = self.behaviors api.content.create(container=self.portal, type=self.portal_type, id='doc1') setRoles(self.portal, TEST_USER_ID, ['Member']) import transaction transaction.commit() # Set up browser self.browser = Browser(app) self.browser.handleErrors = False self.browser.addHeader( 'Authorization', 'Basic {0}:{1}'.format( SITE_OWNER_NAME, SITE_OWNER_PASSWORD, ))
def setUp(self): self.portal = self.layer['portal'] self.request = self.layer['request'] fti = DexterityFTI('TaggedDocument') self.portal.portal_types._setObject('TaggedDocument', fti) fti.klass = 'plone.dexterity.content.Container' fti.schema = 'plone.restapi.tests.test_types.ITaggedValuesSchema'
def setUp(self): app = self.layer['app'] self.portal = self.layer['portal'] self.request = self.layer['request'] self.portal_url = self.portal.absolute_url() setRoles(self.portal, TEST_USER_ID, ['Contributor']) fti = DexterityFTI('leadimagefolder') self.portal.portal_types._setObject('leadimagefolder', fti) fti.klass = 'plone.dexterity.content.Container' fti.behaviors = ( 'plone.app.contenttypes.behaviors.leadimage.ILeadImage', ) self.fti = fti alsoProvides(self.portal.REQUEST, IPloneAppContenttypesLayer) alsoProvides(self.request, IPloneAppContenttypesLayer) from plone.app.contenttypes.behaviors.leadimage import ILeadImage alsoProvides(self.request, ILeadImage) self.portal.invokeFactory( 'leadimagefolder', id='leadimagefolder', title=u'Folder with a lead image' ) import transaction transaction.commit() # Set up browser self.browser = Browser(app) self.browser.handleErrors = False self.browser.addHeader( 'Authorization', 'Basic %s:%s' % (SITE_OWNER_NAME, SITE_OWNER_PASSWORD,) )
def setUp(self): self.portal = self.layer["portal"] self.request = self.layer["request"] fti = DexterityFTI("TaggedDocument") self.portal.portal_types._setObject("TaggedDocument", fti) fti.klass = "plone.dexterity.content.Container" fti.schema = "plone.restapi.tests.test_types.ITaggedValuesSchema"
def add_mock_fti(portal): # Fake DX Type fti = DexterityFTI('dx_mock') portal.portal_types._setObject('dx_mock', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = 'plone.app.dexterity.tests.test_permissions.IMockSchema' fti.filter_content_types = False fti.behaviors = ('plone.app.dexterity.behaviors.metadata.IBasic',)
def add_mock_fti(portal): # Fake DX Type fti = DexterityFTI('dx_mock') portal.portal_types._setObject('dx_mock', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = 'plone.app.widgets.tests.test_dx.IMockSchema' fti.filter_content_types = False fti.behaviors = ('plone.app.dexterity.behaviors.metadata.IBasic',)
def add_item_type(portal): fti = DexterityFTI('item') portal.portal_types._setObject('item', fti) fti.klass = 'plone.dexterity.content.Item' fti.filter_content_types = False fti.behaviors = ( 'plone.app.dexterity.behaviors.metadata.IBasic') return fti
def setUpPloneSite(self, portal): # Install into Plone site using portal_setup setRoles(portal, TEST_USER_ID, ['Member', 'Contributor', 'Manager']) # portal workaround self.portal = portal # test fti generation fti = DexterityFTI('TransmogrifyDexterityFTI') fti.schema = 'transmogrify.dexterity.testing.ITestSchema' fti.klass = 'plone.dexterity.content.Container' fti.behaviors = ('plone.app.dexterity.behaviors.metadata.IBasic',) self.portal.portal_types._setObject('TransmogrifyDexterityFTI', fti) register(fti) # create test schema source and provide it @implementer(ISection) class SchemaSource(SampleSource): classProvides(ISectionBlueprint) def __init__(self, transmogrifier, name, options, previous): super(SchemaSource, self).__init__(transmogrifier, name, options, previous) sourcecontent = options.get('source-content', 'full') if sourcecontent == 'full': self.sample = ( dict(_path='/spam', foo='one value', _type='TransmogrifyDexterityFTI', title='Spam', description='Lorem Ipsum bla bla!', test_file={ 'data': zptlogo, 'filename': 'zptlogo.gif'}, test_date='2010-10-12', fieldnotchanged='nochange', ), dict(_path='/two', foo='Bla', _type='TransmogrifyDexterityFTI', title='My Second Object', #description=None, # None is not valid for this field. test_file=zptlogo, _filename="testlogo.gif", test_date=date(2010, 01, 01, ), fieldnotchanged='nochange', ), ) elif sourcecontent == 'onlytitle': self.sample = ( dict(_path='/spam', _type='TransmogrifyDexterityFTI', title='Spammety spam'), dict(_path='/two', _type='TransmogrifyDexterityFTI', title='My Awesome Second Object'), ) provideUtility(SchemaSource, name=u'transmogrify.dexterity.testsource')
def setUpPloneSite(self, portal): # Install into Plone site using portal_setup # self.applyProfile(portal, 'plone.app.linkintegrity:default') super(LinkintegrityFixture, self).setUpPloneSite(portal) setRoles(portal, TEST_USER_ID, ['Manager']) fti = DexterityFTI('My Dexterity Item') portal.portal_types._setObject('My Dexterity Item', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = 'collective.cover.tests.test_linkintegrity.IMyDexterityItem' fti.behaviors = ('plone.app.referenceablebehavior.referenceable.IReferenceable',) fti = DexterityFTI('Non referenciable Dexterity Item') portal.portal_types._setObject('Non referenciable Dexterity Item', fti) fti.klass = 'plone.dexterity.content.Item' fti.schema = 'collective.cover.tests.test_linkintegrity.IMyDexterityItem' # Create some dexterity items to test with it portal.invokeFactory( 'My Dexterity Item', id='dexterity_item1', title='Dexterity Item 1') portal.invokeFactory( 'My Dexterity Item', id='dexterity_item2', title='Dexterity Item 2') portal.invokeFactory( 'Non referenciable Dexterity Item', id='nonreferenciable_dexterity_item1', title='Non referenciable Dexterity Item 1' ) portal.invokeFactory( 'Non referenciable Dexterity Item', id='nonreferenciable_dexterity_item2', title='Non referenciable Dexterity Item 2' ) # Create an AT Image image = generate_jpeg(50, 50) portal.invokeFactory( 'Image', id='image1', title='Test Image 1', image=image) portal.invokeFactory('collective.cover.content', 'cover1') # Documents text = '<html> <body> a test page </body> </html>' portal.invokeFactory( 'Document', id='doc1', title='Test Page 1', text=text) text = '<html> <body> another test page </body> </html>' portal.invokeFactory( 'Document', id='doc2', title='Test Page 2', text=text) text = '<html> <body> a test page in a subfolder </body> </html>' portal.invokeFactory('Folder', id='folder1', title='Test Folder 1') portal.folder1.invokeFactory( 'Document', id='doc3', title='Test Page 3', text=text)
def add_folder_type(portal): fti = DexterityFTI('folder') portal.portal_types._setObject('folder', fti) fti.klass = 'plone.dexterity.content.Container' fti.filter_content_types = False fti.behaviors = ('Products.CMFPlone.interfaces.constrains.' 'ISelectableConstrainTypes', 'plone.app.dexterity.behaviors.metadata.IBasic') return fti
def setUp(self): self.portal = self.layer["portal"] self.request = self.layer["request"] login(self.portal, TEST_USER_NAME) setRoles(self.portal, TEST_USER_ID, ["Manager"]) fti = DexterityFTI("blocksfolder") self.portal.portal_types._setObject("blocksfolder", fti) fti.klass = "plone.dexterity.content.Container" fti.behaviors = ("volto.blocks", )
def _setup_test_content_type(self, name): from plone.dexterity.fti import DexterityFTI fti = DexterityFTI(name) fti.behaviors = ('plone.app.dexterity.behaviors.metadata.IDublinCore', 'adhocracy.plone.behavior.IAdhocracyStaticPagesRoot') fti.klass = 'plone.dexterity.content.Container' fti.filter_content_types = False self.portal.portal_types._setObject(name, fti) fti.lookupSchema()
def add_folder_type(portal): fti = DexterityFTI('folder') portal.portal_types._setObject('folder', fti) fti.klass = 'plone.dexterity.content.Container' fti.filter_content_types = False fti.behaviors = ( 'plone.app.dexterity.behaviors.metadata.IBasic', 'brasil.gov.vcge.dx.behaviors.IVCGE') return fti
def add_folder_type(portal): fti = DexterityFTI('folder') portal.portal_types._setObject('folder', fti) fti.klass = 'plone.dexterity.content.Container' fti.filter_content_types = False fti.behaviors = ( 'Products.CMFPlone.interfaces.constrains.' 'ISelectableConstrainTypes', 'plone.app.dexterity.behaviors.metadata.IBasic') return fti
def add_folder_type(portal): from plone.dexterity.fti import DexterityFTI fti = DexterityFTI(DEXTERITY_FTI_FOLDER) portal.portal_types._setObject(DEXTERITY_FTI_FOLDER, fti) fti.klass = 'plone.dexterity.content.Container' fti.filter_content_types = False fti.behaviors = ('plone.app.dexterity.behaviors.metadata.IBasic', 'brasil.gov.vcge.dx.behaviors.IVCGE') return fti
def setUp(self): super(TestDocumentNumbering, self).setUp() fti = DexterityFTI('SimpleDocument') fti.klass = 'plone.dexterity.content.Container' fti.behaviors = ('opengever.document.behaviors.IBaseDocument', ) fti.schema = 'opengever.document.document.IDocumentSchema' typestool = getToolByName(self.portal, 'portal_types') typestool._setObject('SimpleDocument', fti) register(fti)
def setUp(self): super(TestSchemaLevelDefaultsForBehaviors, self).setUp() fti = DexterityFTI('SampleItem') fti.klass = 'plone.dexterity.content.Item' fti.behaviors = ('opengever.base.tests.sample_behavior.sample.ISampleSchema', ) fti.schema = 'opengever.base.tests.emptyschema.IEmptySchema' typestool = getToolByName(self.portal, 'portal_types') typestool._setObject('SampleItem', fti) register(fti)
def add_folder_type(portal): from plone.dexterity.fti import DexterityFTI fti = DexterityFTI(DEXTERITY_FTI_FOLDER) portal.portal_types._setObject(DEXTERITY_FTI_FOLDER, fti) fti.klass = 'plone.dexterity.content.Container' fti.filter_content_types = False fti.behaviors = ( 'plone.app.dexterity.behaviors.metadata.IBasic', 'brasil.gov.vcge.dx.behaviors.IVCGE') return fti
def setUp(self): self.portal = self.layer["portal"] self.request = self.layer["request"] login(self.portal, TEST_USER_NAME) setRoles(self.portal, TEST_USER_ID, ["Manager"]) fti = DexterityFTI("tiledfolder") self.portal.portal_types._setObject("tiledfolder", fti) fti.klass = "plone.dexterity.content.Container" fti.behaviors = ("plone.tiles", ) self.fti = fti alsoProvides(self.request, ITiles)
def setUp(self): super(TestDocumentNumbering, self).setUp() fti = DexterityFTI("SimpleDocument") fti.klass = "plone.dexterity.content.Container" fti.behaviors = ("opengever.document.behaviors.IBaseDocument",) fti.schema = "opengever.document.document.IDocumentSchema" typestool = getToolByName(self.portal, "portal_types") typestool._setObject("SimpleDocument", fti) register(fti)
def setUp(self): self.portal = self.layer['portal'] activateAndReindex(self.portal) setRoles(self.portal, TEST_USER_ID, ['Manager']) fti = DexterityFTI('My Dexterity Container') self.portal.portal_types._setObject('My Dexterity Container', fti) fti.klass = 'plone.dexterity.content.Container' fti.schema = 'zope.interface.Interface' fti.behaviors = ('collective.solr.behaviors.ISolrFields', ) self.portal.invokeFactory('My Dexterity Container', 'child') self.child = self.portal['child']
def setUp(self): self.portal = self.layer["portal"] activateAndReindex(self.portal) setRoles(self.portal, TEST_USER_ID, ["Manager"]) fti = DexterityFTI("My Dexterity Container") self.portal.portal_types._setObject("My Dexterity Container", fti) fti.klass = "plone.dexterity.content.Container" fti.schema = "zope.interface.Interface" fti.behaviors = ("collective.solr.behaviors.ISolrFields", ) self.portal.invokeFactory("My Dexterity Container", "child") self.child = self.portal["child"]
def setUp(self): self.portal = self.layer['portal'] activateAndReindex(self.portal) setRoles(self.portal, TEST_USER_ID, ['Manager']) fti = DexterityFTI('My Dexterity Container') self.portal.portal_types._setObject('My Dexterity Container', fti) fti.klass = 'plone.dexterity.content.Container' fti.schema = 'zope.interface.Interface' fti.behaviors = ('collective.solr.behaviors.ISolrFields',) self.portal.invokeFactory('My Dexterity Container', 'child') self.child = self.portal['child']
def _add_folder_type(self, portal): # Register a dexterity folder type. fti = DexterityFTI('Folder') portal.portal_types._delObject('Folder') portal.portal_types._setObject('Folder', fti) fti.klass = 'plone.dexterity.content.Container' fti.filter_content_types = False fti.behaviors = ( 'Products.CMFPlone.interfaces.constrains.' 'ISelectableConstrainTypes', 'plone.app.dexterity.behaviors.metadata.IBasic', 'plone.app.content.interfaces.INameFromTitle') return fti
def setUp(self): self.portal = self.layer['portal'] self.request = self.layer['request'] self.request['ACTUAL_URL'] = self.portal.absolute_url() self.request['URL'] = self.portal.absolute_url() directlyProvides(self.request, IPloneAppContenttypesLayer) setRoles(self.portal, TEST_USER_ID, ['Manager']) self.catalog = getToolByName(self.portal, 'portal_catalog') fti = DexterityFTI('mockobject') fti.klass = 'plone.dexterity.content.Item' self.portal.portal_types._setObject('mockobject', fti) self.portal.invokeFactory('mockobject', 'obj1') self.obj = self.portal.obj1
def setUp(self): self.portal = self.layer['portal'] self.request = self.layer['request'] login(self.portal, TEST_USER_NAME) setRoles(self.portal, TEST_USER_ID, ['Manager']) fti = DexterityFTI('tiledfolder') self.portal.portal_types._setObject('tiledfolder', fti) fti.klass = 'plone.dexterity.content.Container' fti.behaviors = ( 'plone.tiles', ) self.fti = fti alsoProvides(self.request, ITiles)
def setUpPloneSite(self, portal): self.applyProfile(portal, "plone.app.dexterity:default") from plone.dexterity.fti import DexterityFTI fti = DexterityFTI("MicroSite") fti.title = u"MicroSite" fti.klass = "plone.dexterity.content.Container" fti.behaviors = ( "plone.app.dexterity.behaviors.metadata.IBasic", "plone.app.content.interfaces.INameFromTitle", "collective.behavior.localregistry.behavior.ILocalRegistry", "collective.behavior.localskin.behavior.ILocalSkin", ) portal.portal_types._setObject("MicroSite", fti)
def setUp(self): self.app = self.layer["app"] self.request = self.layer["request"] self.portal = self.layer["portal"] self.portal_url = self.portal.absolute_url() setRoles(self.portal, TEST_USER_ID, ["Manager"]) fti = DexterityFTI("blocksdocument") self.portal.portal_types._setObject("blocksdocument", fti) fti.klass = "plone.dexterity.content.Container" fti.behaviors = ("volto.blocks", ) self.portal.invokeFactory("blocksdocument", id="doc") self.doc = self.portal["doc"] alsoProvides(self.doc, IBlocks) transaction.commit()
def setup_sample_fti(self): types_tool = self.layer['portal'].portal_types default_behaviors = [ 'plone.app.dexterity.behaviors.metadata.IBasic', 'plone.app.content.interfaces.INameFromTitle', IDataGridFieldExample.__identifier__ ] fti = DexterityFTI('SampleContent') fti.schema = 'ftw.publisher.core.testing.ISampleContentSchema' fti.klass = 'ftw.publisher.core.testing.SampleContent' fti.behaviors = tuple(default_behaviors) fti.default_view = 'view' types_tool._setObject('SampleContent', fti)
def setUp(self): super(TestSchemaLevelDefaultsForBehaviors, self).setUp() fti = DexterityFTI('SampleItem') fti.klass = 'plone.dexterity.content.Item' fti.behaviors = ( 'opengever.base.tests.sample_behavior.sample.ISampleSchema', ) fti.schema = 'opengever.base.tests.emptyschema.IEmptySchema' typestool = getToolByName(self.portal, 'portal_types') typestool._setObject('SampleItem', fti) register(fti) site_fti = typestool['Plone Site'] site_fti.allowed_content_types = site_fti.allowed_content_types + ( 'SampleItem', )
def setUp(self): self.portal = self.layer['portal'] self.request = self.layer['request'] # TYPE 1 type1_fti = DexterityFTI('type1') type1_fti.klass = 'plone.dexterity.content.Container' type1_fti.filter_content_types = True type1_fti.allowed_content_types = ['type1'] type1_fti.behaviors = ( 'Products.CMFPlone.interfaces.constrains.ISelectableConstrainTypes', # noqa 'plone.app.dexterity.behaviors.metadata.IBasic' ) self.portal.portal_types._setObject('type1', type1_fti) self.type1_fti = type1_fti login(self.portal, TEST_USER_NAME) setRoles(self.portal, TEST_USER_ID, ['Manager'])
def getFileSetter(self, schema): portal_type = 'testtype' setRoles(self.portal, TEST_USER_ID, ('Manager',)) # prepare a fti fti = DexterityFTI(portal_type) fti.klass = 'plone.dexterity.content.Item' fti.schema = schema.__identifier__ self.portal.portal_types._setObject(portal_type, fti) register(fti) # prepare an item item = Item('testitem') item.portal_type = portal_type self.portal._setObject(item.id, item) item = self.portal[item.id] return IQuickUploadFileSetter(item)