[Erp5-report] r27015 - /erp5/trunk/products/ERP5Type/tests/testCacheTool.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon May 18 10:51:23 CEST 2009


Author: nicolas
Date: Mon May 18 10:51:23 2009
New Revision: 27015

URL: http://svn.erp5.org?rev=27015&view=rev
Log:
Refactor Test
  * make tests independant each other
  * add Interface cheking test

Modified:
    erp5/trunk/products/ERP5Type/tests/testCacheTool.py

Modified: erp5/trunk/products/ERP5Type/tests/testCacheTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/testCacheTool.py?rev=27015&r1=27014&r2=27015&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/testCacheTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/testCacheTool.py [utf8] Mon May 18 10:51:23 2009
@@ -55,6 +55,11 @@
 
   def afterSetUp(self):
     self.login()
+    self.checkCacheTool()
+    self.checkPortalTypes()
+    self.createCacheFactories()
+    self.createCachedMethod()
+    transaction.commit()
 
   def login(self):
     uf = self.getPortal().acl_users
@@ -63,12 +68,11 @@
     user = uf.getUserById('admin').__of__(uf)
     newSecurityManager(None, user)
 
-  def test_01_CheckCacheTool(self):
+  def checkCacheTool(self):
     portal = self.getPortal()
     self.assertNotEqual(None, getattr(portal, 'portal_caches', None))
-    transaction.commit()
-
-  def test_02_CheckPortalTypes(self):
+
+  def checkPortalTypes(self):
     portal = self.getPortal()
     portal_types = portal.portal_types
     typeinfo_names = ("Cache Factory",
@@ -80,71 +84,71 @@
     for typeinfo_name in typeinfo_names:
       portal_type = getattr(portal_types, typeinfo_name, None)
       self.assertNotEqual(None, portal_type)
-    transaction.commit()
-
-  def test_03_CreateCacheFactories(self):
+
+  def createCacheFactories(self):
     portal = self.getPortal()
     portal_caches = portal.portal_caches
 
     # Cache plugins are organised into 'Cache factories' so we create
     # factories first ram_cache_factory (to test Ram Cache Plugin) 
-    ram_cache_factory = portal_caches.newContent(portal_type="Cache Factory",
-                                                 id='ram_cache_factory',
-                                                 container=portal_caches)
-    ram_cache_plugin = ram_cache_factory.newContent(portal_type="Ram Cache",
-                                                    container=ram_cache_factory)
-    ram_cache_plugin.setIntIndex(0)
-
-
-    ## distributed_ram_cache_factory (to test Distributed Ram Cache Plugin) 
-    dram_cache_factory = portal_caches.newContent(portal_type="Cache Factory",
-                                                  id='distributed_ram_cache_factory',
-                                                  container=portal_caches)
-    dram_cache_plugin = dram_cache_factory.newContent(
-            portal_type="Distributed Ram Cache", container=dram_cache_factory)
-    dram_cache_plugin.setIntIndex(0)
-
-    ## sql_cache_factory (to test SQL Cache Plugin) 
-    sql_cache_factory = portal_caches.newContent(portal_type="Cache Factory",
-                                                 id='sql_cache_factory',
-                                                 container=portal_caches)
-    sql_cache_plugin = sql_cache_factory.newContent(
-                    portal_type="SQL Cache", container=sql_cache_factory)
-    sql_cache_plugin.setIntIndex(0)
-
-    ## zodb_cache_factory (to test ZODB Cache Plugin) 
-    zodb_cache_factory = portal_caches.newContent(portal_type="Cache Factory",
-                                                  id='zodb_cache_factory',
-                                                  container=portal_caches)
-    zodb_cache_plugin = zodb_cache_factory.newContent(
-                    portal_type="Zodb Cache", container=zodb_cache_factory)
-    zodb_cache_plugin.setIntIndex(0)
-
-    ## erp5_user_factory (to test a combination of all cache plugins)
-    erp5_user_factory = portal_caches.newContent(portal_type="Cache Factory",
-                                                 id="erp5_user_factory",
-                                                 container=portal_caches)
-
-    ram_cache_plugin = erp5_user_factory.newContent(
-            portal_type="Ram Cache", container=erp5_user_factory)
-    ram_cache_plugin.setIntIndex(0)
-    dram_cache_plugin = erp5_user_factory.newContent(
-            portal_type="Distributed Ram Cache", container=erp5_user_factory)
-    dram_cache_plugin.setIntIndex(1)
-    sql_cache_plugin = erp5_user_factory.newContent(
-            portal_type="SQL Cache", container=erp5_user_factory)
-    sql_cache_plugin.setIntIndex(2)
-    zodb_cache_plugin = erp5_user_factory.newContent(
-            portal_type="Zodb Cache", container=erp5_user_factory)
-    zodb_cache_plugin.setIntIndex(3)
-
-    ##
-    transaction.commit()
+    if getattr(portal_caches, 'ram_cache_factory', None) is None:
+      ram_cache_factory = portal_caches.newContent(portal_type="Cache Factory",
+                                                   id='ram_cache_factory',
+                                                   container=portal_caches)
+      ram_cache_plugin = ram_cache_factory.newContent(portal_type="Ram Cache",
+                                                      container=ram_cache_factory)
+      ram_cache_plugin.setIntIndex(0)
+
+    if getattr(portal_caches, 'distributed_ram_cache_factory', None) is None:
+      ## distributed_ram_cache_factory (to test Distributed Ram Cache Plugin) 
+      dram_cache_factory = portal_caches.newContent(portal_type="Cache Factory",
+                                                    id='distributed_ram_cache_factory',
+                                                    container=portal_caches)
+      dram_cache_plugin = dram_cache_factory.newContent(
+              portal_type="Distributed Ram Cache", container=dram_cache_factory)
+      dram_cache_plugin.setIntIndex(0)
+
+    if getattr(portal_caches, 'sql_cache_factory', None) is None:
+      ## sql_cache_factory (to test SQL Cache Plugin) 
+      sql_cache_factory = portal_caches.newContent(portal_type="Cache Factory",
+                                                   id='sql_cache_factory',
+                                                   container=portal_caches)
+      sql_cache_plugin = sql_cache_factory.newContent(
+                      portal_type="SQL Cache", container=sql_cache_factory)
+      sql_cache_plugin.setIntIndex(0)
+
+    if getattr(portal_caches, 'zodb_cache_factory', None) is None:
+      ## zodb_cache_factory (to test ZODB Cache Plugin) 
+      zodb_cache_factory = portal_caches.newContent(portal_type="Cache Factory",
+                                                    id='zodb_cache_factory',
+                                                    container=portal_caches)
+      zodb_cache_plugin = zodb_cache_factory.newContent(
+                      portal_type="Zodb Cache", container=zodb_cache_factory)
+      zodb_cache_plugin.setIntIndex(0)
+
+    if getattr(portal_caches, 'erp5_user_factory', None) is None:
+
+      ## erp5_user_factory (to test a combination of all cache plugins)
+      erp5_user_factory = portal_caches.newContent(portal_type="Cache Factory",
+                                                   id="erp5_user_factory",
+                                                   container=portal_caches)
+
+      ram_cache_plugin = erp5_user_factory.newContent(
+              portal_type="Ram Cache", container=erp5_user_factory)
+      ram_cache_plugin.setIntIndex(0)
+      dram_cache_plugin = erp5_user_factory.newContent(
+              portal_type="Distributed Ram Cache", container=erp5_user_factory)
+      dram_cache_plugin.setIntIndex(1)
+      sql_cache_plugin = erp5_user_factory.newContent(
+              portal_type="SQL Cache", container=erp5_user_factory)
+      sql_cache_plugin.setIntIndex(2)
+      zodb_cache_plugin = erp5_user_factory.newContent(
+              portal_type="Zodb Cache", container=erp5_user_factory)
+      zodb_cache_plugin.setIntIndex(3)
 
     ## update Ram Cache structure
     portal_caches.updateCache()
-    ## commit PersistantMapping for zodb_cache
-    transaction.commit()
+
     from Products.ERP5Type.Cache import CachingMethod
 
     ## do we have the same structure we created above?
@@ -154,9 +158,10 @@
     self.assert_('zodb_cache_factory' in CachingMethod.factories)
     self.assert_('erp5_user_factory' in CachingMethod.factories)
 
-  def test_04_CreateCachedMethod(self):
-    portal = self.getPortal()
-
+  def createCachedMethod(self):
+    portal = self.getPortal()
+    if getattr(portal, 'testCachedMethod', None) is not None:
+      return
     ## add test cached method
     py_script_id = "testCachedMethod"
     py_script_params = "value=10000, portal_path=('','erp5')"
@@ -177,9 +182,8 @@
                                                 id=py_script_id)
     py_script_obj = getattr(portal, py_script_id)
     py_script_obj.ZPythonScript_edit(py_script_params, py_script_body)
-    transaction.commit()
-
-  def test_05_CacheFactoryOnePlugin(self):
+
+  def test_01_CacheFactoryOnePlugin(self):
     """ Test cache factory containing only one cache plugin. """
     portal = self.getPortal()
     from Products.ERP5Type.Cache import CachingMethod
@@ -194,7 +198,7 @@
                                cache_factory=cf_name)
       self._cacheFactoryInstanceTest(my_cache, cf_name)
 
-  def test_06_CacheFactoryMultiPlugins(self):
+  def test_02_CacheFactoryMultiPlugins(self):
     """ Test a cache factory containing multiple cache plugins. """
     portal = self.getPortal()
     from Products.ERP5Type.Cache import CachingMethod
@@ -252,7 +256,7 @@
     ## Cache  cleared shouldn't be previously cached
     self.assert_(1.0 < calculation_time)
 
-  def test_CachePersistentObjects(self):
+  def test_03_cachePersistentObjects(self):
     # storing persistent objects in cache is not allowed, but this check is
     # only performed in unit tests.
     from Products.ERP5Type.Cache import CachingMethod
@@ -268,6 +272,21 @@
     cached_func = CachingMethod(func, 'cache_bound_method')
     self.assertRaises(TypeError, cached_func)
 
+  def test_04_CachePluginInterface(self):
+    """Test Class against Interface
+    """
+    from Products.ERP5Type.CachePlugins.DistributedRamCache import DistributedRamCache
+    from Products.ERP5Type.CachePlugins.RamCache import RamCache
+    from Products.ERP5Type.CachePlugins.SQLCache import SQLCache
+    from Products.ERP5Type.CachePlugins.ZODBCache import ZODBCache
+    from Products.ERP5Type.Interface.ICachePlugin import ICachePlugin
+    from Interface.Verify import verifyClass
+    verifyClass(ICachePlugin, ZODBCache)
+    verifyClass(ICachePlugin, DistributedRamCache)
+    verifyClass(ICachePlugin, RamCache)
+    verifyClass(ICachePlugin, SQLCache)
+
+
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestCacheTool))




More information about the Erp5-report mailing list