[Erp5-report] r9345 - /erp5/trunk/products/ERP5Type/tests/testFolder.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Aug 23 11:48:57 CEST 2006
Author: vincent
Date: Wed Aug 23 11:48:52 2006
New Revision: 9345
URL: http://svn.erp5.org?rev=9345&view=rev
Log:
Add tests for new folder id generation.
Added:
erp5/trunk/products/ERP5Type/tests/testFolder.py
Added: erp5/trunk/products/ERP5Type/tests/testFolder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/testFolder.py?rev=9345&view=auto
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/testFolder.py (added)
+++ erp5/trunk/products/ERP5Type/tests/testFolder.py Wed Aug 23 11:48:52 2006
@@ -1,0 +1,106 @@
+#
+# ERP5 Folder unit test suite.
+#
+
+import os, sys
+if __name__ == '__main__':
+ execfile(os.path.join(sys.path[0], 'framework.py'))
+
+# Needed in order to have a log file inside the current folder
+os.environ['EVENT_LOG_FILE'] = os.path.join(os.getcwd(), 'zLOG.log')
+os.environ['EVENT_LOG_SEVERITY'] = '-300'
+
+#from random import randint
+from Testing import ZopeTestCase
+from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
+from zLOG import LOG, INFO
+from Products.CMFCore.tests.base.testcase import LogInterceptor
+from Products.ERP5Type.tests.utils import createZODBPythonScript
+from Products.ERP5Type.ERP5Type import ERP5TypeInformation
+
+class TestFolder(ERP5TypeTestCase, LogInterceptor):
+
+ # Some helper methods
+
+ def getTitle(self):
+ return "Folder"
+
+ def getBusinessTemplateList(self):
+ """
+ Return the list of business templates.
+ """
+ return tuple()
+
+ def afterSetUp(self):
+ """
+ Executed before each test_*.
+ """
+ self.login()
+ self.folder = self.getPortal().newContent(id='TestFolder', portal_type='Folder')
+
+ def beforeTearDown(self):
+ """
+ Executed after each test_*.
+ """
+ self.getPortal().manage_delObjects(ids=[self.folder.getId()])
+
+ def newContent(self):
+ """
+ Create an object in self.folder and return it.
+ """
+ return self.folder.newContent(portal_type='Folder')
+
+ def test_01_folderType(self, quiet=0, run=1):
+ """
+ Test if the present Folder class is the ERP5 version of Folder, not CMF's.
+ """
+ if not run : return
+ if not quiet:
+ message = 'Test folderType value'
+ LOG('Testing... ', 0, message)
+ self.assertTrue(isinstance(self.getTypesTool()['Folder'], ERP5TypeInformation))
+
+ def test_02_defaultGenerateNewId(self, quiet=0, run=1):
+ """
+ Test the default Id generation method.
+ Ids are incremented at content creation and start at 1.
+ """
+ if not run : return
+ if not quiet:
+ message = 'Test default generateNewId'
+ LOG('Testing... ', 0, message)
+ self.assertEquals(self.folder.getIdGenerator(), '') # No id generator defined
+ #assertEqual(self.folder.getIdGroup(), None) # Folder belongs to no group (this would trigger use of portalIds).
+ self.assertEquals(len(self.folder), 0)
+ object = self.newContent()
+ self.assertEquals(object.getId(), '1')
+ object = self.newContent()
+ self.assertEquals(object.getId(), '2')
+
+ def test_03_customGenerateNewId(self, quiet=0, run=1):
+ """
+ Test that id_generator property is honored.
+ """
+ if not run : return
+ if not quiet:
+ message = 'Test custom generateNewId'
+ LOG('Testing... ', 0, message)
+ id_generator_script_name = 'testIdGenerator'
+ id_generator_id_list = ['first_id', 'second_id']
+ createZODBPythonScript(self.getPortal().portal_skins.erp5_core,
+ id_generator_script_name, '', 'return %s[len(context)]' % (repr(id_generator_id_list), ))
+ self.folder.setIdGenerator(id_generator_script_name)
+ self.assertEquals(self.folder.getIdGenerator(), id_generator_script_name)
+ for expected_length in xrange(len(id_generator_id_list)):
+ self.assertEquals(len(self.folder), expected_length)
+ object = self.newContent()
+ self.assertEquals(object.getId(), id_generator_id_list[expected_length])
+
+if __name__ == '__main__':
+ framework()
+else:
+ import unittest
+ def test_suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestFolder))
+ return suite
More information about the Erp5-report
mailing list