Ejemplo n.º 1
0
    def test_forbidden_tools( self ):

        from Products.CMFSetup.tool import TOOLSET_XML
        from Products.CMFSetup.tool import importToolset
        TOOL_IDS = ( 'doomed', 'blasted', 'saved' )

        site = self._initSite()

        for tool_id in TOOL_IDS:
            pseudo = Folder()
            pseudo._setId( tool_id )
            site._setObject( tool_id, pseudo )

        self.assertEqual( len( site.objectIds() ), len( TOOL_IDS ) + 1 )

        for tool_id in TOOL_IDS:
            self.failUnless( tool_id in site.objectIds() )

        context = DummyImportContext( site )
        context._files[ TOOLSET_XML ] = _FORBIDDEN_TOOLSET_XML

        importToolset( context )

        self.assertEqual( len( site.objectIds() ), 2 )
        self.failUnless( 'portal_setup' in site.objectIds() )
        self.failUnless( 'saved' in site.objectIds() )
Ejemplo n.º 2
0
    def test_required_tools_with_replacement( self ):

        from Products.CMFSetup.tool import TOOLSET_XML
        from Products.CMFSetup.tool import importToolset

        site = self._initSite()

        mandatory = AnotherDummyTool()
        mandatory._setId( 'mandatory' )
        site._setObject( 'mandatory', mandatory )

        obligatory = AnotherDummyTool()
        obligatory._setId( 'obligatory' )
        site._setObject( 'obligatory', obligatory )

        self.assertEqual( len( site.objectIds() ), 3 )

        context = DummyImportContext( site )
        context._files[ TOOLSET_XML ] = _REQUIRED_TOOLSET_XML

        importToolset( context )

        self.assertEqual( len( site.objectIds() ), 3 )

        self.failIf( aq_base( site._getOb( 'mandatory' ) ) is mandatory )
        self.failUnless( isinstance( aq_base( site._getOb( 'mandatory' ) )
                                   , DummyTool ) )

        self.failIf( aq_base( site._getOb( 'obligatory' ) ) is obligatory )
        self.failUnless( isinstance( aq_base( site._getOb( 'obligatory' ) )
                                   , DummyTool ) )
Ejemplo n.º 3
0
    def test_required_tools_with_replacement(self):

        from Products.CMFSetup.tool import TOOLSET_XML
        from Products.CMFSetup.tool import importToolset

        site = self._initSite()

        mandatory = AnotherDummyTool()
        mandatory._setId('mandatory')
        site._setObject('mandatory', mandatory)

        obligatory = AnotherDummyTool()
        obligatory._setId('obligatory')
        site._setObject('obligatory', obligatory)

        self.assertEqual(len(site.objectIds()), 3)

        context = DummyImportContext(site)
        context._files[TOOLSET_XML] = _REQUIRED_TOOLSET_XML

        importToolset(context)

        self.assertEqual(len(site.objectIds()), 3)

        self.failIf(aq_base(site._getOb('mandatory')) is mandatory)
        self.failUnless(
            isinstance(aq_base(site._getOb('mandatory')), DummyTool))

        self.failIf(aq_base(site._getOb('obligatory')) is obligatory)
        self.failUnless(
            isinstance(aq_base(site._getOb('obligatory')), DummyTool))
Ejemplo n.º 4
0
    def test_forbidden_tools(self):

        from Products.CMFSetup.tool import TOOLSET_XML
        from Products.CMFSetup.tool import importToolset
        TOOL_IDS = ('doomed', 'blasted', 'saved')

        site = self._initSite()

        for tool_id in TOOL_IDS:
            pseudo = Folder()
            pseudo._setId(tool_id)
            site._setObject(tool_id, pseudo)

        self.assertEqual(len(site.objectIds()), len(TOOL_IDS) + 1)

        for tool_id in TOOL_IDS:
            self.failUnless(tool_id in site.objectIds())

        context = DummyImportContext(site)
        context._files[TOOLSET_XML] = _FORBIDDEN_TOOLSET_XML

        importToolset(context)

        self.assertEqual(len(site.objectIds()), 2)
        self.failUnless('portal_setup' in site.objectIds())
        self.failUnless('saved' in site.objectIds())
Ejemplo n.º 5
0
    def test_tool_ids( self ):
        # The tool import mechanism used to rely on the fact that all tools
        # have unique IDs set at the class level and that you can call their
        # constructor with no arguments. However, there might be tools 
        # that need IDs set.
        from Products.CMFSetup.tool import TOOLSET_XML
        from Products.CMFSetup.tool import importToolset

        site = self._initSite()
        context = DummyImportContext( site )
        context._files[ TOOLSET_XML ] = _REQUIRED_TOOLSET_XML

        importToolset( context )

        for tool_id in ( 'mandatory', 'obligatory' ):
            tool = getattr( site, tool_id )
            self.assertEqual( tool.getId(), tool_id )
Ejemplo n.º 6
0
    def test_required_tools_missing( self ):

        from Products.CMFSetup.tool import TOOLSET_XML
        from Products.CMFSetup.tool import importToolset

        site = self._initSite()
        self.assertEqual( len( site.objectIds() ), 1 )

        context = DummyImportContext( site )
        context._files[ TOOLSET_XML ] = _REQUIRED_TOOLSET_XML

        importToolset( context )

        self.assertEqual( len( site.objectIds() ), 3 )
        self.failUnless( isinstance( aq_base( site._getOb( 'mandatory' ) )
                                   , DummyTool ) )
        self.failUnless( isinstance( aq_base( site._getOb( 'obligatory' ) )
                                   , DummyTool ) )
Ejemplo n.º 7
0
    def test_required_tools_missing(self):

        from Products.CMFSetup.tool import TOOLSET_XML
        from Products.CMFSetup.tool import importToolset

        site = self._initSite()
        self.assertEqual(len(site.objectIds()), 1)

        context = DummyImportContext(site)
        context._files[TOOLSET_XML] = _REQUIRED_TOOLSET_XML

        importToolset(context)

        self.assertEqual(len(site.objectIds()), 3)
        self.failUnless(
            isinstance(aq_base(site._getOb('mandatory')), DummyTool))
        self.failUnless(
            isinstance(aq_base(site._getOb('obligatory')), DummyTool))