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() )
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 ) )
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))
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())
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 )
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 ) )
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))