[Erp5-report] r39639 jm - in /erp5/trunk/products/ERP5: Document/ tests/ tests/test_data/te...

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Oct 28 22:58:51 CEST 2010


Author: jm
Date: Thu Oct 28 22:58:49 2010
New Revision: 39639

URL: http://svn.erp5.org?rev=39639&view=rev
Log:
Fix test_167_InstanceAndRelatedClassDefinedInSameBT

Added:
    erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/old_file.xml
      - copied, changed from r39623, erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_file.xml
    erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_foo.xml
      - copied, changed from r39623, erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_file.xml
    erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PortalTypeTemplateItem/
    erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PortalTypeTemplateItem/portal_types/
    erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PortalTypeTemplateItem/portal_types/Foo.xml
    erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_portal_type_id_list
Removed:
    erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_update_business_template_workflow
    erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_update_tool
Modified:
    erp5/trunk/products/ERP5/Document/BusinessTemplate.py
    erp5/trunk/products/ERP5/tests/testBusinessTemplate.py
    erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_file.xml
    erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_path_list

Modified: erp5/trunk/products/ERP5/Document/BusinessTemplate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BusinessTemplate.py?rev=39639&r1=39638&r2=39639&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] Thu Oct 28 22:58:49 2010
@@ -59,6 +59,7 @@ from Products.ERP5Type.Utils import read
 from Products.ERP5Type.Utils import convertToUpperCase
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
 from Products.ERP5Type.XMLObject import XMLObject
+from Products.ERP5Type.dynamic.portal_type_class import synchronizeDynamicModules
 from OFS.Traversable import NotFound
 from OFS import SimpleItem, XMLExportImport
 from cStringIO import StringIO
@@ -3354,6 +3355,7 @@ class DocumentTemplateItem(BaseTemplateI
     update_dict = kw.get('object_to_update')
     force = kw.get('force')
     if context.getTemplateFormatVersion() == 1:
+      need_reset = isinstance(self, DocumentTemplateItem)
       for id in self._objects.keys():
         if update_dict.has_key(id) or force:
           if not force:
@@ -3366,11 +3368,14 @@ class DocumentTemplateItem(BaseTemplateI
           try:
             self.local_file_writer_name(name, text, create=0)
           except IOError, error:
-            LOG("BusinessTemplate.py", WARNING, "Cannot install class %s on file system" %(name,))
+            LOG(self.__class__.__name__, WARNING,
+                "Cannot install class %r on file system" % name)
             if error.errno:
               raise
             continue
-          if self.local_file_importer_name is not None:
+          if self.local_file_importer_name is None:
+            continue
+          if need_reset:
             # before any import, flush all ZODB caches to force a DB reload
             # otherwise we could have objects trying to get commited while
             # holding reference to a class that is no longer the same one as
@@ -3380,9 +3385,12 @@ class DocumentTemplateItem(BaseTemplateI
             transaction.savepoint(optimistic=True)
             # Then we need to flush from all caches, not only the one from this
             # connection
-            self.getPortalObject()._p_jar.db().cacheMinimize()
+            portal = self.getPortalObject()
+            portal._p_jar.db().cacheMinimize()
+            synchronizeDynamicModules(portal, force=True)
             gc.collect()
-            self.local_file_importer_name(name)
+            need_reset = False
+          self.local_file_importer_name(name)
     else:
       BaseTemplateItem.install(self, context, trashbin, **kw)
       for id in self._archive.keys():
@@ -4861,6 +4869,8 @@ Business Template is a set of definition
 
       # Create temporary modules/classes for classes defined by this BT.
       # This is required if the BT contains instances of one of these classes.
+      # XXX This is not required with portal types as classes.
+      #     It is still there for compatibility with non-migrated objects.
       module_id_list = []
       for template_id in self.getTemplateDocumentIdList():
         module_id = 'Products.ERP5Type.Document.' + template_id

Modified: erp5/trunk/products/ERP5/tests/testBusinessTemplate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testBusinessTemplate.py?rev=39639&r1=39638&r2=39639&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testBusinessTemplate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testBusinessTemplate.py [utf8] Thu Oct 28 22:58:49 2010
@@ -5556,7 +5556,7 @@ class TestBusinessTemplate(ERP5TypeTestC
     self.assertTrue(compareVersionStrings('1.0rc1', '>= 1.0rc1'))
 
   def test_checkDependencies(self):
-    from Products.ERP5Type.Document.BusinessTemplate import \
+    from Products.ERP5.Document.BusinessTemplate import \
           BusinessTemplateMissingDependency
     template_tool = self.getPortal().portal_templates
     erp5_core_version = template_tool.getInstalledBusinessTemplate(
@@ -6664,13 +6664,15 @@ class TestBusinessTemplate(ERP5TypeTestC
     # This test does too much since we don't modify objects anymore during
     # download. Objects are cleaned up during installation, which does not
     # require any specific action about garbage collection or pickle cache.
-    from Products.ERP5Type.Document.BusinessTemplate import BaseTemplateItem
+    from Products.ERP5.Document.BusinessTemplate import BaseTemplateItem
     portal = self.portal
     BaseTemplateItem_removeProperties = BaseTemplateItem.removeProperties
+    object_id_list = 'old_file', 'some_file', 'some_foo'
     marker_list = []
     def removeProperties(self, obj, export):
       # Check it works if the object is modified during install.
-      obj.int_index = marker_list.pop()
+      if obj.id in object_id_list:
+        obj.int_index = marker_list.pop()
       return obj
     SimpleItem_getCopy = SimpleItem._getCopy
     try:
@@ -6680,7 +6682,7 @@ class TestBusinessTemplate(ERP5TypeTestC
       bt_path = os.path.join(os.path.dirname(__file__), 'test_data',
                              'test_167_InstanceAndRelatedClassDefinedInSameBT')
       # create a previously existing instance of the overriden document type
-      from Products.ERP5Type.Document.File import File
+      File = portal.portal_types.getPortalTypeClass('File')
       portal._setObject('another_file', File('another_file'))
       transaction.commit()
       self.tic()
@@ -6690,7 +6692,7 @@ class TestBusinessTemplate(ERP5TypeTestC
       # check its class has not yet been overriden
       self.assertFalse(getattr(portal.another_file, 'isClassOverriden', False))
       for i in (0, 1):
-        marker_list.append(i)
+        marker_list += [i] * len(object_id_list)
         gc.disable()
         bt = template_tool.download(bt_path)
         assert marker_list
@@ -6700,7 +6702,8 @@ class TestBusinessTemplate(ERP5TypeTestC
         bt.install(force=1)
         assert not marker_list
         gc.enable()
-        self.assertEqual(portal.some_file.int_index, i)
+        for id in object_id_list:
+          self.assertEqual(getattr(portal, id).int_index, i)
         transaction.commit()
         self.tic()
     finally:

Copied: erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/old_file.xml (from r39623, erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_file.xml)
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/old_file.xml?p2=erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/old_file.xml&p1=erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_file.xml&r1=39623&r2=39639&rev=39639&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_file.xml [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/old_file.xml [utf8] Thu Oct 28 22:58:49 2010
@@ -11,7 +11,7 @@
       <dictionary>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>some_file</string> </value>
+            <value> <string>old_file</string> </value>
         </item>
       </dictionary>
     </pickle>

Modified: erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_file.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_file.xml?rev=39639&r1=39638&r2=39639&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_file.xml [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_file.xml [utf8] Thu Oct 28 22:58:49 2010
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="File" module="Products.ERP5Type.Document.File"/>
-        <tuple/>
-      </tuple>
+      <global name="File" module="erp5.portal_type"/>
     </pickle>
     <pickle>
       <dictionary>

Copied: erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_foo.xml (from r39623, erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_file.xml)
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_foo.xml?p2=erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_foo.xml&p1=erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_file.xml&r1=39623&r2=39639&rev=39639&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_file.xml [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PathTemplateItem/some_foo.xml [utf8] Thu Oct 28 22:58:49 2010
@@ -2,16 +2,13 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="File" module="Products.ERP5Type.Document.File"/>
-        <tuple/>
-      </tuple>
+      <global name="Foo" module="erp5.portal_type"/>
     </pickle>
     <pickle>
       <dictionary>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>some_file</string> </value>
+            <value> <string>some_foo</string> </value>
         </item>
       </dictionary>
     </pickle>

Added: erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PortalTypeTemplateItem/portal_types/Foo.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PortalTypeTemplateItem/portal_types/Foo.xml?rev=39639&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PortalTypeTemplateItem/portal_types/Foo.xml (added)
+++ erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/PortalTypeTemplateItem/portal_types/Foo.xml [utf8] Thu Oct 28 22:58:49 2010
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Base Type" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>content_icon</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>factory</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Foo</string> </value>
+        </item>
+        <item>
+            <key> <string>init_script</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>permission</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Base Type</string> </value>
+        </item>
+        <item>
+            <key> <string>type_class</string> </key>
+            <value> <string>XMLObject</string> </value>
+        </item>
+        <item>
+            <key> <string>type_mixin</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>

Modified: erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_path_list
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_path_list?rev=39639&r1=39638&r2=39639&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_path_list [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_path_list [utf8] Thu Oct 28 22:58:49 2010
@@ -1 +1,3 @@
-some_file
\ No newline at end of file
+old_file
+some_file
+some_foo
\ No newline at end of file

Added: erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_portal_type_id_list
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_portal_type_id_list?rev=39639&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_portal_type_id_list (added)
+++ erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_portal_type_id_list [utf8] Thu Oct 28 22:58:49 2010
@@ -0,0 +1 @@
+Foo
\ No newline at end of file

Removed: erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_update_business_template_workflow
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_update_business_template_workflow?rev=39638&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_update_business_template_workflow [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_update_business_template_workflow (removed)
@@ -1 +0,0 @@
-0
\ No newline at end of file

Removed: erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_update_tool
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_update_tool?rev=39638&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_update_tool [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/test_data/test_167_InstanceAndRelatedClassDefinedInSameBT/bt/template_update_tool (removed)
@@ -1 +0,0 @@
-0
\ No newline at end of file




More information about the Erp5-report mailing list