示例#1
0
 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')
示例#3
0
 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)),
     ]
示例#4
0
    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')
示例#5
0
 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)),
     ]
示例#6
0
 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)),
     ]
示例#7
0
 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')
示例#8
0
 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,)
        )
示例#12
0
    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',
     )
示例#15
0
 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'
示例#16
0
    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)
示例#17
0
    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 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 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
示例#21
0
 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',
     )
示例#22
0
    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,
            ))
示例#23
0
 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,)
     )
示例#25
0
 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"
示例#26
0
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',)
示例#27
0
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
示例#29
0
    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
示例#32
0
 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", )
示例#33
0
 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()
示例#34
0
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
示例#36
0
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
示例#37
0
    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)
示例#39
0
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
示例#40
0
 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)
示例#41
0
    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)
示例#42
0
    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)
示例#43
0
    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']
示例#44
0
    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"]
示例#45
0
    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']
示例#46
0
 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
示例#48
0
 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)
示例#49
0
 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
示例#50
0
    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()
示例#52
0
    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_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', )
示例#55
0
    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)