[CMF-checkins] CVS: CMF/CMFSetup/tests - test_toolset.py:1.1 test_all.py:1.10

Tres Seaver tseaver at zope.com
Fri Jun 25 16:21:57 EDT 2004


Update of /cvs-repository/CMF/CMFSetup/tests
In directory cvs.zope.org:/tmp/cvs-serv26490/tests

Modified Files:
	test_all.py 
Added Files:
	test_toolset.py 
Log Message:


  - toolset.py:

    o Spell import step (but not apply, yet) for required / forbidden tools.

  - actions.py:

    o Janitorial.


=== Added File CMF/CMFSetup/tests/test_toolset.py ===
""" Tools importer unit tests.

$Id: test_toolset.py,v 1.1 2004/06/25 20:21:57 tseaver Exp $
"""
import unittest
import os

from OFS.Folder import Folder

from Products.CMFSetup.tests.common import BaseRegistryTests

#==============================================================================
#   Dummy handlers
#==============================================================================
def ONE_FUNC( context ): pass
def TWO_FUNC( context ): pass
def THREE_FUNC( context ): pass
def FOUR_FUNC( context ): pass

ONE_FUNC_NAME = '%s.%s' % ( __name__, ONE_FUNC.__name__ )
TWO_FUNC_NAME = '%s.%s' % ( __name__, TWO_FUNC.__name__ )
THREE_FUNC_NAME = '%s.%s' % ( __name__, THREE_FUNC.__name__ )
FOUR_FUNC_NAME = '%s.%s' % ( __name__, FOUR_FUNC.__name__ )


#==============================================================================
#   SSR tests
#==============================================================================
class TestToolInitializer( BaseRegistryTests ):

    def _getTargetClass( self ):

        from Products.CMFSetup.toolset import ToolInitializer
        return ToolInitializer

    def _initSite( self, foo=2, bar=2 ):

        self.root.site = Folder( id='site' )
        site = self.root.site

        return site

    def test_empty( self ):

        site = self._initSite()
        configurator = self._makeOne( site )

        self.assertEqual( len( configurator.listForbiddenTools() ), 0 )
        self.assertEqual( len( configurator.listRequiredTools() ), 0 )
        self.assertEqual( len( configurator.listRequiredToolInfo() ), 0 )

        self.assertRaises( KeyError
                         , configurator.getRequiredToolInfo, 'nonesuch' )

    def test_addForbiddenTool_multiple( self ):

        VERBOTTEN = ( 'foo', 'bar', 'bam' )

        site = self._initSite()
        configurator = self._makeOne( site )

        for verbotten in VERBOTTEN:
            configurator.addForbiddenTool( verbotten )

        self.assertEqual( len( configurator.listForbiddenTools() )
                        , len( VERBOTTEN ) )

        for verbotten in configurator.listForbiddenTools():
            self.failUnless( verbotten in VERBOTTEN )

    def test_addForbiddenTool_duplicate( self ):

        site = self._initSite()
        configurator = self._makeOne( site )

        configurator.addForbiddenTool( 'once' )

        self.assertRaises( KeyError, configurator.addForbiddenTool, 'once' )

    def test_addForbiddenTool_but_required( self ):

        site = self._initSite()
        configurator = self._makeOne( site )

        configurator.addRequiredTool( 'required', 'some.dotted.name' )

        self.assertRaises( ValueError
                         , configurator.addForbiddenTool, 'required' )

    def test_addRequiredTool_multiple( self ):

        REQUIRED = ( ( 'one', 'path.to.one' )
                   , ( 'two', 'path.to.two' )
                   , ( 'three', 'path.to.three' )
                   )

        site = self._initSite()
        configurator = self._makeOne( site )

        for tool_id, dotted_name in REQUIRED:
            configurator.addRequiredTool( tool_id, dotted_name )

        self.assertEqual( len( configurator.listRequiredTools() )
                        , len( REQUIRED ) )

        for id in [ x[0] for x in REQUIRED ]:
            self.failUnless( id in configurator.listRequiredTools() )

        self.assertEqual( len( configurator.listRequiredToolInfo() )
                        , len( REQUIRED ) )

        for tool_id, dotted_name in REQUIRED:
            info = configurator.getRequiredToolInfo( tool_id )
            self.assertEqual( info[ 'id' ], tool_id )
            self.assertEqual( info[ 'class' ], dotted_name )

    def test_addRequiredTool_duplicate( self ):

        site = self._initSite()
        configurator = self._makeOne( site )

        configurator.addRequiredTool( 'required', 'some.dotted.name' )

        self.assertRaises( KeyError
                         , configurator.addRequiredTool
                         , 'required'
                         , 'another.name'
                         )

    def test_addRequiredTool_but_forbidden( self ):

        site = self._initSite()
        configurator = self._makeOne( site )

        configurator.addForbiddenTool( 'forbidden' )

        self.assertRaises( ValueError
                         , configurator.addRequiredTool
                         , 'forbidden'
                         , 'a.name'
                         )

    def test_parseXML_empty( self ):

        site = self._initSite( 0, 0 )
        configurator = self._makeOne( site )

        configurator.parseXML( _EMPTY_IMPORT_XML )

        self.assertEqual( len( configurator.listForbiddenTools() ), 0 )
        self.assertEqual( len( configurator.listRequiredTools() ), 0 )

    def test_parseXML_normal( self ):

        site = self._initSite( 0, 0 )
        configurator = self._makeOne( site )

        configurator.parseXML( _NORMAL_IMPORT_XML )

        self.assertEqual( len( configurator.listForbiddenTools() ), 1 )
        self.failUnless( 'doomed' in configurator.listForbiddenTools() )

        self.assertEqual( len( configurator.listRequiredTools() ), 2 )

        self.failUnless( 'mandatory' in configurator.listRequiredTools() )
        info = configurator.getRequiredToolInfo( 'mandatory' )
        self.assertEqual( info[ 'class' ], 'path.to.one' )

        self.failUnless( 'obligatory' in configurator.listRequiredTools() )
        info = configurator.getRequiredToolInfo( 'obligatory' )
        self.assertEqual( info[ 'class' ], 'path.to.another' )

    def test_parseXML_confused( self ):

        site = self._initSite( 0, 0 )
        configurator = self._makeOne( site )

        self.assertRaises( ValueError
                         , configurator.parseXML, _CONFUSED_IMPORT_XML )


_EMPTY_IMPORT_XML = """\
<?xml version="1.0"?>
<tool-setup>
</tool-setup>
"""

_NORMAL_IMPORT_XML = """\
<?xml version="1.0"?>
<tool-setup>
 <forbidden tool_id="doomed" />
 <required tool_id="mandatory" class="path.to.one" />
 <required tool_id="obligatory" class="path.to.another" />
</tool-setup>
"""

_CONFUSED_IMPORT_XML = """\
<?xml version="1.0"?>
<tool-setup>
 <forbidden tool_id="confused" />
 <required tool_id="confused" class="path.to.one" />
</tool-setup>
"""

def test_suite():
    return unittest.TestSuite((
        unittest.makeSuite( TestToolInitializer ),
        ))

if __name__ == '__main__':
    unittest.main(defaultTest='test_suite')


=== CMF/CMFSetup/tests/test_all.py 1.9 => 1.10 ===
--- CMF/CMFSetup/tests/test_all.py:1.9	Wed Jun  2 18:46:41 2004
+++ CMF/CMFSetup/tests/test_all.py	Fri Jun 25 16:21:57 2004
@@ -19,6 +19,7 @@
                              , 'test_rolemap'
                              , 'test_skins'
                              , 'test_tool'
+                             , 'test_toolset'
                              , 'test_typeinfo'
                              , 'test_utils'
                              , 'test_workflow'



More information about the CMF-checkins mailing list