From 9ef4e0d30ccf00ac05e8b4ba4eb4c2005666016f Mon Sep 17 00:00:00 2001
From: Vincent Pelletier <vincent@nexedi.com>
Date: Thu, 7 Feb 2008 13:58:57 +0000
Subject: [PATCH] Add a test for activity robustness to changeSkin call during
 activity.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@19130 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/CMFActivity/tests/testCMFActivity.py | 34 ++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/product/CMFActivity/tests/testCMFActivity.py b/product/CMFActivity/tests/testCMFActivity.py
index de6adf416e..ee8191aa14 100644
--- a/product/CMFActivity/tests/testCMFActivity.py
+++ b/product/CMFActivity/tests/testCMFActivity.py
@@ -2563,6 +2563,40 @@ class TestCMFActivity(ERP5TypeTestCase):
       LOG('Testing... ',0,message)
     self.TryActivityRaiseInCommitDoesNotLooseMessages('SQLQueue')
 
+  def TryChangeSkinInActivity(self, activity):
+    get_transaction().commit()
+    self.tic()
+    activity_tool = self.getActivityTool()
+    def changeSkinToNone(self):
+      self.getPortalObject().changeSkin(None)
+    Organisation.changeSkinToNone = changeSkinToNone
+    try:
+      organisation = self.getPortal().organisation_module.newContent(portal_type='Organisation')
+      get_transaction().commit()
+      self.tic()
+      organisation.activate(activity=activity).changeSkinToNone()
+      get_transaction().commit()
+      self.assertEquals(len(activity_tool.getMessageList()), 1)
+      self.flushAllActivities(silent=1, loop_size=100)
+      self.assertEquals(len(activity_tool.getMessageList()), 0)
+    finally:
+      delattr(Organisation, 'changeSkinToNone')
+
+  def test_100_ThreeMethodsWithFailureAndFlushThemSQLDict(self, quiet=0, run=run_all_test):
+    if not run: return
+    if not quiet:
+      message = '\nTry Change Skin In Activity (SQLDict)'
+      ZopeTestCase._print(message)
+      LOG('Testing... ',0,message)
+    self.TryChangeSkinInActivity('SQLDict')
+
+  def test_101_TryChangeSkinInActivitySQLQueue(self, quiet=0, run=run_all_test):
+    if not run: return
+    if not quiet:
+      message = '\nTry ChangeSkin In Activity (SQLQueue)'
+      ZopeTestCase._print(message)
+      LOG('Testing... ',0,message)
+    self.TryChangeSkinInActivity('SQLQueue')
 
 def test_suite():
   suite = unittest.TestSuite()
-- 
2.30.9