[CMF-checkins] CVS: CMF/CMFSetup/tests - test_actions.py:1.13 test_typeinfo.py:1.14

Yvo Schubbe y.2005- at wcm-solutions.de
Wed Apr 13 09:05:59 EDT 2005


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

Modified Files:
	test_actions.py test_typeinfo.py 
Log Message:
more improvements for extension profiles:
- implemented 'remove' for action providers
- refactored typeinfo imports to allow modifying existing typeinfos (doesn't work for single type actions)


=== CMF/CMFSetup/tests/test_actions.py 1.12 => 1.13 ===
--- CMF/CMFSetup/tests/test_actions.py:1.12	Mon Apr 11 07:33:17 2005
+++ CMF/CMFSetup/tests/test_actions.py	Wed Apr 13 09:05:58 2005
@@ -295,7 +295,7 @@
 </actions-tool>
 """
 
-_FRAGMENT_IMPORT = """\
+_INSERT_IMPORT = """\
 <?xml version="1.0"?>
 <actions-tool>
  <object name="dummy">
@@ -316,6 +316,18 @@
 </actions-tool>
 """
 
+_REMOVE_IMPORT = """\
+<?xml version="1.0"?>
+<actions-tool>
+ <action-provider id="portal_actions" remove="">
+ </action-provider>
+ <action-provider id="not_existing" remove="">
+ </action-provider>
+ <action-provider id="portal_bar" remove="">
+ </action-provider>
+</actions-tool>
+"""
+
 
 class Test_exportActionProviders( _ActionSetup ):
 
@@ -478,7 +490,7 @@
         self.failIf( foo.listActions() )
         self.failIf( bar.listActions() )
 
-    def test_fragment_skip_purge(self):
+    def test_insert_skip_purge(self):
 
         from Products.CMFSetup.actions import importActionProviders
 
@@ -495,13 +507,29 @@
         self.assertEqual( atool.dummy.foo.icon_expr, '' )
 
         context = DummyImportContext(site, False)
-        context._files['actions.xml'] = _FRAGMENT_IMPORT
+        context._files['actions.xml'] = _INSERT_IMPORT
         importActionProviders(context)
 
         self.assertEqual( len( atool.listActionProviders() ), 1 )
         self.assertEqual( atool.objectIds(), ['dummy'] )
         self.assertEqual( atool.dummy.objectIds(), ['spam', 'bar', 'foo'] )
         self.assertEqual( atool.dummy.foo.icon_expr, 'string:foo_icon.png' )
+
+    def test_remove_skip_purge(self):
+
+        from Products.CMFSetup.actions import importActionProviders
+
+        site = self._initSite(2, 2)
+        atool = site.portal_actions
+
+        self.assertEqual( atool.listActionProviders(),
+                          ['portal_actions', 'portal_foo', 'portal_bar'] )
+
+        context = DummyImportContext(site, False)
+        context._files['actions.xml'] = _REMOVE_IMPORT
+        importActionProviders(context)
+
+        self.assertEqual( atool.listActionProviders(), ['portal_foo'] )
 
 
 def test_suite():


=== CMF/CMFSetup/tests/test_typeinfo.py 1.13 => 1.14 ===
--- CMF/CMFSetup/tests/test_typeinfo.py:1.13	Tue Dec 14 15:56:58 2004
+++ CMF/CMFSetup/tests/test_typeinfo.py	Wed Apr 13 09:05:58 2005
@@ -34,11 +34,10 @@
 from common import DummyImportContext
 
 
-class DummyTypeInfo( SimpleItem ):
+class DummyTypeInfo(SimpleItem):
 
-    def __init__( self, info ):
+    pass
 
-        self.__dict__.update( info )
 
 class DummyTypesTool( Folder ):
 
@@ -450,6 +449,13 @@
 </types-tool>
 """
 
+_UPDATE_TOOL_IMPORT = """\
+<?xml version="1.0"?>
+<types-tool>
+ <type id="foo"/>
+</types-tool>
+"""
+
 _FOO_EXPORT = """\
 <type-info
    id="%s"
@@ -556,6 +562,15 @@
 </type-info>
 """
 
+_UPDATE_FOO_IMPORT = """\
+<type-info id="foo">
+  <aliases>
+   <alias from="spam" to="eggs"/>
+  </aliases>
+</type-info>
+"""
+
+
 class Test_exportTypesTool( _TypeInfoSetup ):
 
     def test_empty( self ):
@@ -706,6 +721,39 @@
         self.assertEqual( len( tool.objectIds() ), 2 )
         self.failUnless( 'foo object' in tool.objectIds() )
         self.failUnless( 'bar object' in tool.objectIds() )
+
+    def test_fragment_skip_purge_ascii(self):
+
+        from Products.CMFSetup.typeinfo import importTypesTool
+
+        site = self._initSite()
+        tool = site.portal_types
+
+        context = DummyImportContext(site, encoding='ascii')
+        context._files['typestool.xml'] = _NORMAL_TOOL_EXPORT
+        context._files['types/foo.xml'] = _FOO_EXPORT % 'foo'
+        context._files['types/bar.xml'] = _BAR_EXPORT % 'bar'
+        importTypesTool(context)
+
+        self.assertEqual( tool.foo.title, 'Foo' )
+        self.assertEqual( tool.foo.content_meta_type, 'Foo Thing' )
+        self.assertEqual( tool.foo.content_icon, 'foo.png' )
+        self.assertEqual( tool.foo.immediate_view, 'foo_view' )
+        self.assertEqual( tool.foo._aliases,
+                          {'(Default)': 'foo_view', 'view': 'foo_view'} )
+
+        context = DummyImportContext(site, False, encoding='ascii')
+        context._files['typestool.xml'] = _UPDATE_TOOL_IMPORT
+        context._files['types/foo.xml'] = _UPDATE_FOO_IMPORT
+        importTypesTool(context)
+
+        self.assertEqual( tool.foo.title, 'Foo' )
+        self.assertEqual( tool.foo.content_meta_type, 'Foo Thing' )
+        self.assertEqual( tool.foo.content_icon, 'foo.png' )
+        self.assertEqual( tool.foo.immediate_view, 'foo_view' )
+        self.assertEqual( tool.foo._aliases,
+               {'(Default)': 'foo_view', 'view': 'foo_view', 'spam': 'eggs'} )
+
 
 def test_suite():
     return unittest.TestSuite((



More information about the CMF-checkins mailing list