[Erp5-report] r11260 - /erp5/trunk/products/ERP5/tests/testERP5Core.py

nobody at svn.erp5.org nobody at svn.erp5.org
Sun Nov 12 20:36:54 CET 2006


Author: jerome
Date: Sun Nov 12 20:36:52 2006
New Revision: 11260

URL: http://svn.erp5.org?rev=11260&view=rev
Log:
use ZopeTestCase.Functional.publish to test minimal access features.
tests some translations


Modified:
    erp5/trunk/products/ERP5/tests/testERP5Core.py

Modified: erp5/trunk/products/ERP5/tests/testERP5Core.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testERP5Core.py?rev=11260&r1=11259&r2=11260&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testERP5Core.py (original)
+++ erp5/trunk/products/ERP5/tests/testERP5Core.py Sun Nov 12 20:36:52 2006
@@ -27,15 +27,8 @@
 #
 ##############################################################################
 
-#
-# Skeleton ZopeTestCase
-#
-
-from random import randint
 import os
 import sys
-import unittest
-import time
 
 if __name__ == '__main__':
     execfile(os.path.join(sys.path[0], 'framework.py'))
@@ -44,61 +37,48 @@
 os.environ['EVENT_LOG_FILE'] = os.path.join(os.getcwd(), 'zLOG.log')
 os.environ['EVENT_LOG_SEVERITY'] = '-300'
 
+from AccessControl.SecurityManagement import newSecurityManager
 from Testing import ZopeTestCase
+from Products.PageTemplates.GlobalTranslationService import \
+                                      setGlobalTranslationService
+
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
-from AccessControl.SecurityManagement import newSecurityManager, \
-                                             noSecurityManager
-from DateTime import DateTime
-from Acquisition import aq_base, aq_inner
-from zLOG import LOG
-from Products.ERP5Type.DateUtils import addToDate
-from Products.ERP5Type.tests.Sequence import Sequence, SequenceList
-from zExceptions import BadRequest
-from Products.ERP5Type import product_path
-from Products.CMFCore.utils import getToolByName
-from Products.ERP5Type.Tool.ClassTool import _aq_reset
-
-class TestERP5Core(ERP5TypeTestCase):
-
+
+HTTP_OK = 200
+HTTP_UNAUTHORIZED = 401
+HTTP_REDIRECT = 302
+
+class DummyTranslationService:
+  """A dummy translation service where you can access translated msgids and
+  mappings in _translated.
+  """
+  _translated = {}
+  def translate(self, domain, msgid, mapping=None, *args, **kw):
+    self._translated.setdefault(domain, []).append((msgid, mapping))
+    return msgid
+
+class TestERP5Core(ERP5TypeTestCase, ZopeTestCase.Functional):
+  """Test for erp5_core business template.
+  """
   run_all_test = 1
   quiet = 1
+  manager_username = 'rc'
+  manager_password = ''
 
   def getTitle(self):
     return "ERP5Core"
 
-  def getBusinessTemplateList(self):
-    """
-    """
-    return tuple()
-
   def login(self, quiet=0, run=run_all_test):
     uf = self.getPortal().acl_users
-    uf._doAddUser('rc', '', ['Manager'], [])
-    user = uf.getUserById('rc').__of__(uf)
+    uf._doAddUser(self.manager_username, self.manager_password, ['Manager'], [])
+    user = uf.getUserById(self.manager_username).__of__(uf)
     newSecurityManager(None, user)
 
-#  def enableLightInstall(self):
-#    """
-#    You can override this. 
-#    Return if we should do a light install (1) or not (0)
-#    """
-#    return 1
-#
-#  def enableActivityTool(self):
-#    """
-#    You can override this.
-#    Return if we should create (1) or not (0) an activity tool.
-#    """
-#    return 1
-
-  def afterSetUp(self, quiet=1, run=run_all_test):
+  def afterSetUp(self):
     self.login()
     self.portal = self.getPortal()
-#    portal = self.getPortal()
-#    self.category_tool = self.getCategoryTool()
-#    portal_catalog = self.getCatalogTool()
-    #portal_catalog.manage_catalogClear()
-#    self.createCategories()
+    self.portal_id = self.portal.getId()
+    self.auth = '%s:%s' % (self.manager_username, self.manager_password)
 
   def test_01_ERP5Site_createModule(self, quiet=quiet, run=run_all_test):
     """
@@ -121,22 +101,30 @@
     module_id='unittest_module'
     module_title='UnitTests'
     
-    self.assertEqual(getattr(self.portal.hasObject, module_id, None), None)
-    self.assertEqual(getattr(self.portal.portal_skins, portal_skins_folder, None), None)
-    self.assertEqual(getattr(self.portal.portal_types, module_portal_type, None), None)
-    self.assertEqual(getattr(self.portal.portal_types, object_portal_type, None), None)
+    self.failIf(self.portal._getOb(module_id, None) is not None)
+    self.assertEqual(self.portal.portal_skins._getOb(portal_skins_folder, None),
+                     None)
+    self.assertEqual(self.portal.portal_types.getTypeInfo(module_portal_type),
+                     None)
+    self.assertEqual(self.portal.portal_types.getTypeInfo(object_portal_type),
+                     None)
     self.portal.ERP5Site_createModule(module_portal_type=module_portal_type,
                                       portal_skins_folder=portal_skins_folder,
                                       object_portal_type=object_portal_type,
                                       object_title=object_title,
                                       module_id=module_id,
                                       module_title=module_title)
-    self.assertNotEqual(getattr(self.portal, module_id, None), None)
-    self.assertNotEqual(getattr(self.portal.portal_skins, portal_skins_folder, None), None)
-    self.assertNotEqual(getattr(self.portal.portal_types, module_portal_type, None), None)
-    #self.assertEqual(self.portal.portal_types[module_portal_type].title, module_title)
-    self.assertNotEqual(getattr(self.portal.portal_types, object_portal_type, None), None)
-    #self.assertEqual(self.portal.portal_types[object_portal_type].title, object_title)
+    self.failUnless(self.portal._getOb(module_id, None) is not None)
+    self.assertNotEqual(
+        self.portal.portal_skins._getOb(portal_skins_folder, None), None)
+    self.assertEquals(module_title,
+                      self.portal._getOb(module_id).getTitle())
+    self.assertNotEqual(self.portal.portal_types.getTypeInfo(module_portal_type),
+                        None)
+    self.assertNotEqual(self.portal.portal_types.getTypeInfo(object_portal_type),
+                        None)
+    #self.assertEqual(self.portal.portal_types[object_portal_type].title,
+    #                  object_title)
   
   def test_02_FavouritesMenu(self, quiet=quiet, run=run_all_test):
     """
@@ -154,6 +142,55 @@
     for action_name in action_name_list:
       self.assertNotEqual(action_name, "Manage Members")
       self.assertNotEqual(action_name, "Manage members")
+
+  def test_frontpage(self):
+    """Test we can view the front page.
+    """
+    response = self.publish('%s/view' % self.portal_id, self.auth)
+    self.assertEquals(HTTP_OK, response.getStatus())
+    
+  def test_login_form(self):
+    """Test anonymous user are redirected to login_form
+    """
+    response = self.publish('%s/view' % self.portal_id)
+    self.assertEquals(HTTP_REDIRECT, response.getStatus())
+    self.assertEquals('%s/login_form' % self.portal.absolute_url(),
+                      response.getHeader('Location'))
+
+  def test_view_module(self):
+    """Test we can view a module."""
+    for module in ('person_module', 'organisation_module', 'currency_module'):
+      response = self.publish('%s/%s/view' % (self.portal_id, module), self.auth)
+      self.assertEquals(HTTP_OK, response.getStatus())
+ 
+  def test_allowed_content_types_translated(self):
+    """Tests allowed content types from the action menu are translated"""
+    translation_service = DummyTranslationService()
+    setGlobalTranslationService(translation_service)
+    # assumes that we can add Person in person_module
+    response = self.publish('%s/person_module/view' % self.portal_id, self.auth)
+    self.assertEquals(HTTP_OK, response.getStatus())
+    self.failUnless(('Person', {}) in translation_service._translated['ui'])
+    self.failUnless(('Add ${portal_type}', {'portal_type': 'Person'}) in
+                      translation_service._translated['ui'])
+
+  def test_jump_action_translated(self):
+    """Tests jump actions are translated"""
+    translation_service = DummyTranslationService()
+    setGlobalTranslationService(translation_service)
+    # adds a new jump action to Person Module portal type
+    self.getTypesTool().getTypeInfo('Person Module').addAction(
+                      id='dummy_jump_action',
+                      name='Dummy Jump Action',
+                      action='',
+                      condition='',
+                      permission='View',
+                      category='object_jump',
+                      visible=1)
+    response = self.publish('%s/person_module/view' % self.portal_id, self.auth)
+    self.assertEquals(HTTP_OK, response.getStatus())
+    self.failUnless(('Dummy Jump Action', {}) in
+                      translation_service._translated['ui'])
 
 if __name__ == '__main__':
     framework()




More information about the Erp5-report mailing list