[Erp5-report] r44853 rafael - /erp5/trunk/bt5/erp5_configurator_standard/TestTemplateItem/

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Mar 31 07:13:30 CEST 2011


Author: rafael
Date: Thu Mar 31 07:13:30 2011
New Revision: 44853

URL: http://svn.erp5.org?rev=44853&view=rev
Log:
Move code to Mixin.

Modified:
    erp5/trunk/bt5/erp5_configurator_standard/TestTemplateItem/testStandardConfigurationWorkflow.py

Modified: erp5/trunk/bt5/erp5_configurator_standard/TestTemplateItem/testStandardConfigurationWorkflow.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_configurator_standard/TestTemplateItem/testStandardConfigurationWorkflow.py?rev=44853&r1=44852&r2=44853&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_configurator_standard/TestTemplateItem/testStandardConfigurationWorkflow.py [utf8] (original)
+++ erp5/trunk/bt5/erp5_configurator_standard/TestTemplateItem/testStandardConfigurationWorkflow.py [utf8] Thu Mar 31 07:13:30 2011
@@ -966,1300 +966,6 @@ class TestStandardConfiguratorWorkflow(T
           resource_uid=resource.getUid(),
           node_uid=node.getUid()))
 
-  ###################################
-  ## Test Configurator Security
-  ###################################
-  def stepViewAddGadget(self, sequence=None, sequence_list=None, **kw):
-    """
-       Test if gadget system is working.
-    """
-    for user_id in self.all_username_list:
-      self._loginAsUser(user_id)
-      knowledge_pad_module = self.portal.knowledge_pad_module
-      knowledge_pad = knowledge_pad_module.newContent(portal_type='Knowledge Pad')
-      self.failUnlessUserCanViewDocument(user_id, knowledge_pad)
-      self.failUnlessUserCanAccessDocument(user_id, knowledge_pad)
-      # only in visible state we can add Gadgets (i.e. Knowledge Boxes)
-      knowledge_pad.visible()
-      knowledge_box = knowledge_pad.newContent(portal_type='Knowledge Box')
-      self.failUnlessUserCanViewDocument(user_id, knowledge_box)
-      self.failUnlessUserCanAccessDocument(user_id, knowledge_box)
-
-  def stepViewEventModule(self, sequence=None, sequence_list=None, **kw):
-    """ Everybody can view events. """
-    for username in self.all_username_list:
-      self.failUnlessUserCanViewDocument(username, self.portal.event_module)
-      self.failUnlessUserCanAccessDocument(username, self.portal.event_module)
-
-  def stepAddEvent(self, sequence=None, sequence_list=None, **kw):
-    """ Everybody can add events. """
-    for username in self.all_username_list:
-      self.failUnlessUserCanAddDocument(username, self.portal.event_module)
-      for event_type in ('Visit', 'Web Message', 'Letter', 'Note',
-                         'Phone Call', 'Mail Message', 'Fax Message'):
-        self._loginAsUser(username)
-        event = self.portal.event_module.newContent(portal_type=event_type)
-        self.failUnlessUserCanViewDocument(username, event)
-        self.failUnlessUserCanAccessDocument(username, event)
-
-  def stepSentEventWorkflow(self, sequence=None, sequence_list=None, **kw):
-    for event_type in ('Visit', 'Web Message', 'Letter', 'Note',
-                       'Phone Call', 'Mail Message', 'Fax Message'):
-      event = self.portal.event_module.newContent(portal_type=event_type)
-      # in draft state, we can view & modify
-      for username in self.all_username_list:
-        self.failUnlessUserCanAccessDocument(username, event)
-        self.failUnlessUserCanViewDocument(username, event)
-        self.failUnlessUserCanModifyDocument(username, event)
-
-      # everybody can cancel from draft
-      for username in self.all_username_list:
-        self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'cancel_action', event)
-
-      # everybody can submit
-      for username in self.all_username_list:
-        self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'plan_action', event)
-
-      event.plan()
-      self.assertEquals('planned', event.getSimulationState())
-
-      # everybody can request or post a submitted event
-      for username in self.all_username_list:
-        self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'order_action', event)
-        self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'start_action', event)
-
-      event.start()
-      self.assertEquals('started', event.getSimulationState())
-
-      # everybody can deliver a posted event
-      for username in self.all_username_list:
-        self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'deliver_action', event)
-      event.deliver()
-      self.assertEquals('delivered', event.getSimulationState())
-
-  ## Accounts {{{
-  def stepViewAccountModule(self, sequence=None, sequence_list=None, **kw):
-    """ everybody can view and access account module. """
-    for username in self.all_username_list:
-      self.failUnlessUserCanViewDocument(username,
-                              self.portal.account_module)
-      self.failUnlessUserCanAccessDocument(username,
-                              self.portal.account_module)
-
-  def stepAddAccountModule(self, sequence=None, sequence_list=None, **kw):
-    """ only accountants can add accounts. """
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanAddDocument(username,
-                    self.portal.account_module)
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanAddDocument(username,
-                      self.portal.account_module)
-
-  def stepViewAccount(self, sequence=None, sequence_list=None, **kw):
-    account = self.portal.account_module.newContent(
-                                      portal_type='Account')
-    # in draft state,
-    self.assertEquals('draft', account.getValidationState())
-    # everybody can see
-    for username in self.all_username_list:
-      self.failUnlessUserCanViewDocument(username, account)
-      self.failUnlessUserCanAccessDocument(username, account)
-
-    # only accountants can modify
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanModifyDocument(username, account)
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanModifyDocument(username, account)
-
-    # only accountants can validate
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(
-                  username, 'validate_action', account)
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanPassWorkflowTransition(
-                    username, 'validate_action', account)
-
-    account.validate()
-    self.assertEquals('validated', account.getValidationState())
-    # in validated state, every body can view, but *nobody* can modify
-    for username in self.all_username_list:
-      self.failUnlessUserCanViewDocument(username, account)
-      self.failUnlessUserCanAccessDocument(username, account)
-      self.failIfUserCanModifyDocument(username, account)
-
-    # only accountants can invalidate
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(
-                  username, 'invalidate_action', account)
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanPassWorkflowTransition(
-                  username, 'invalidate_action', account)
-
-    account.invalidate()
-    self.assertEquals('invalidated', account.getValidationState())
-    # back in invalidated state, everybody can view
-    for username in self.all_username_list:
-      self.failUnlessUserCanViewDocument(username, account)
-      self.failUnlessUserCanAccessDocument(username, account)
-    # only accountants can modify
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanModifyDocument(username, account)
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanModifyDocument(username, account)
-
-    account.delete()
-    # nobody can view delete object, but we can still access, for safety
-    for username in self.all_username_list:
-      self.failIfUserCanViewDocument(username, account)
-
-  def stepCopyPasteAccount(self, sequence=None, sequence_list=None, **kw):
-    # tests copy / pasting accounts from account module
-    account = self.portal.account_module.newContent(
-                                      portal_type='Account')
-    # in draft state,
-    self.assertEquals('draft', account.getValidationState())
-
-    # everybody can see
-    for username in self.all_username_list:
-      self.failUnlessUserCanViewDocument(username, account)
-      self.failUnlessUserCanAccessDocument(username, account)
-
-  def stepViewEntityModules(self, sequence=None, sequence_list=None, **kw):
-    # Everybody can view entities.
-    for username in self.all_username_list:
-      for module in [self.portal.person_module,
-                     self.portal.organisation_module]:
-        self.failUnlessUserCanViewDocument(username, module)
-        self.failUnlessUserCanAccessDocument(username, module)
-
-  def stepAddEntityModules(self, sequence=None, sequence_list=None, **kw):
-    # Everybody can add entities.
-    for username in self.all_username_list:
-      for module in [self.portal.person_module,
-                     self.portal.organisation_module]:
-        self.failUnlessUserCanAddDocument(username, module)
-
-  def stepCopyAndPastePerson(self, sequence=None, sequence_list=None, **kw):
-    # copy & paste in person module
-    person = self.portal.person_module.newContent(
-                                    portal_type='Person')
-
-    for username in self.all_username_list:
-      self._loginAsUser(username)
-      person.Base_createCloneDocument()
-
-  def stepCopyAndPasteOrganisation(self, sequence=None, sequence_list=None, **kw):
-    # copy & paste in organisation module
-    organisation = self.portal.organisation_module.newContent(
-                                    portal_type='Organisation')
-    for username in self.all_username_list:
-      self._loginAsUser(username)
-      organisation.Base_createCloneDocument()
-
-  def stepEntityWorkflow(self, sequence=None, sequence_list=None, **kw):
-    for module in [self.portal.person_module,
-                   self.portal.organisation_module]:
-      entity = module.newContent()
-      # in draft state, we can view, modify & add
-      for username in self.all_username_list:
-        self.failUnlessUserCanAccessDocument(username, entity)
-        self.failUnlessUserCanViewDocument(username, entity)
-        self.failUnlessUserCanModifyDocument(username, entity)
-        self.failUnlessUserCanAddDocument(username, entity)
-
-      # everybody can validate
-      for username in self.all_username_list:
-        self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'validate_action', entity)
-      entity.validate()
-      self.assertEquals('validated', entity.getValidationState())
-
-      # in validated state, we can still modify
-      for username in self.all_username_list:
-        self.failUnlessUserCanAccessDocument(username, entity)
-        self.failUnlessUserCanViewDocument(username, entity)
-        self.failUnlessUserCanModifyDocument(username, entity)
-        self.failUnlessUserCanAddDocument(username, entity)
-
-      # and invalidate
-      for username in self.all_username_list:
-        self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'invalidate_action', entity)
-
-  def stepViewCreatedPersons(self, sequence=None, sequence_list=None, **kw):
-    self.login(user_name='test_configurator_user')
-    business_configuration = sequence.get('business_configuration')
-    person_list = self.getBusinessConfigurationObjectList(business_configuration, 'Person')
-    self.assertNotEquals(0, len(person_list))
-
-    for entity in person_list:
-      for username in self.all_username_list:
-        self.failUnlessUserCanAccessDocument(username, entity)
-        self.failUnlessUserCanViewDocument(username, entity)
-
-  def stepViewCreatedOrganisations(self, sequence=None, sequence_list=None, **kw):
-    self.login(user_name='test_configurator_user')
-    business_configuration = sequence.get('business_configuration')
-    organisation_list = self.getBusinessConfigurationObjectList(business_configuration, 'Organisation')
-    self.assertNotEquals(0, len(organisation_list))
-
-    for entity in organisation_list:
-      for username in self.all_username_list:
-        self.failUnlessUserCanAccessDocument(username, entity)
-        self.failUnlessUserCanViewDocument(username, entity)
-
-  def stepViewCreatedAssignemnts(self, sequence=None, sequence_list=None, **kw):
-    self.login(user_name='test_configurator_user')
-    business_configuration = sequence.get('business_configuration')
-    person_list = self.getBusinessConfigurationObjectList(business_configuration, 'Person')
-    self.assertNotEquals(0, len(person_list))
-
-    for person in person_list:
-      found_one = 0
-      for assignment in person.contentValues(portal_type='Assignment'):
-        found_one = 1
-        for username in self.all_username_list:
-          self.failUnlessUserCanAccessDocument(username, assignment)
-          self.failUnlessUserCanViewDocument(username, assignment)
-      self.assertTrue(found_one, 'No assignment found in %s' % person)
-
-  # }}}
-
-  ## Accounting Periods {{{
-  def stepAddAccoutingPeriod(self, sequence=None, sequence_list=None, **kw):
-    # Everybody can add accounting periods.
-    organisation = self.portal.organisation_module.newContent(
-                          portal_type='Organisation')
-    for username in self.all_username_list:
-      self._loginAsUser(username)
-      self.assertTrue('Accounting Period' in
-            organisation.getVisibleAllowedContentTypeList())
-
-  def stepValidatedAccountingPeriods(self, sequence=None, sequence_list=None, **kw):
-    organisation = self.portal.organisation_module.newContent(
-                          portal_type='Organisation',
-                          price_currency_value=self.portal.currency_module.EUR,
-                          group='my_group')
-    accounting_period = organisation.newContent(
-                          portal_type='Accounting Period',
-                          start_date=DateTime(2001, 01, 01),
-                          stop_date=DateTime(2002, 12, 31))
-    self.assertEquals(accounting_period.getSimulationState(), 'draft')
-
-    # accountants can modify the period
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanModifyDocument(username, accounting_period)
-    # accountants can cancel the period
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(
-          username, 'cancel_action', accounting_period)
-    # accountants can start the period
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(
-          username, 'start_action', accounting_period)
-
-    # once the period is started, nobody can modify
-    accounting_period.start()
-    self.assertEquals('started', accounting_period.getSimulationState())
-    for username in self.accountant_username_list:
-      self.failIfUserCanModifyDocument(username, accounting_period)
-    # accountants can still cancel the period
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(
-          username, 'cancel_action', accounting_period)
-    # accountants can stop the period
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(
-          username, 'stop_action', accounting_period)
-    # and reopen it
-    accounting_period.stop()
-    self.assertEquals('stopped', accounting_period.getSimulationState())
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(
-          username, 'restart_action', accounting_period)
-    # but only accounting manager can close it
-    self.failUnlessUserCanPassWorkflowTransition(
-          self.accounting_manager_reference, 'deliver_action', accounting_period)
-    if self.restricted_security:
-      self.failIfUserCanPassWorkflowTransition(
-          self.accounting_agent_reference, 'deliver_action', accounting_period)
-
-  # }}}
-
-  ## Payment Nodes (Bank Account & Credit Cards) {{{
-  def stepViewBankAccount(self, sequence=None, sequence_list=None, **kw):
-    # Everybody can view bank accounts.
-    entity = self.portal.organisation_module.newContent(
-                                               portal_type='Organisation')
-    bank_account = entity.newContent(portal_type='Bank Account')
-    # everybody can view in draft ...
-    self.assertEquals('draft', bank_account.getValidationState())
-    for username in self.all_username_list:
-      self.failUnlessUserCanViewDocument(username, bank_account)
-      self.failUnlessUserCanAccessDocument(username, bank_account)
-    # ... and validated states
-    bank_account.validate()
-    self.assertEquals('validated', bank_account.getValidationState())
-    for username in self.all_username_list:
-      self.failUnlessUserCanViewDocument(username, bank_account)
-      self.failUnlessUserCanAccessDocument(username, bank_account)
-
-  def stepViewCreditCard(self, sequence=None, sequence_list=None, **kw):
-    # Everybody can view credit cards
-    entity = self.portal.organisation_module.newContent(
-                                               portal_type='Organisation')
-    ext_payment = entity.newContent(portal_type='Credit Card')
-    # every body can view in draft ...
-    self.assertEquals('draft', ext_payment.getValidationState())
-    for username in self.all_username_list:
-      self.failUnlessUserCanViewDocument(username, ext_payment)
-      self.failUnlessUserCanAccessDocument(username, ext_payment)
-    # ... and validated states
-    ext_payment.validate()
-    self.assertEquals('validated', ext_payment.getValidationState())
-    for username in self.all_username_list:
-      self.failUnlessUserCanViewDocument(username, ext_payment)
-      self.failUnlessUserCanAccessDocument(username, ext_payment)
-
-  def stepValidateAndModifyBankAccount(self, sequence=None, sequence_list=None, **kw):
-    # Every body can modify Bank Accounts
-    entity = self.portal.organisation_module.newContent(
-                                               portal_type='Organisation')
-    bank_account = entity.newContent(portal_type='Bank Account')
-    # draft
-    for username in self.all_username_list:
-      self.failUnlessUserCanModifyDocument(username, bank_account)
-    for username in self.all_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                'validate_action', bank_account)
-    # validated
-    bank_account.validate()
-    self.assertEquals('validated', bank_account.getValidationState())
-    for username in self.all_username_list:
-      self.failUnlessUserCanModifyDocument(username, bank_account)
-    for username in self.all_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                'invalidate_action', bank_account)
-    # invalidated
-    bank_account.invalidate()
-    self.assertEquals('invalidated', bank_account.getValidationState())
-    for username in self.all_username_list:
-      self.failUnlessUserCanModifyDocument(username, bank_account)
-    for username in self.all_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                'validate_action', bank_account)
-
-  def stepValidateAndModifyCreditCard(self, sequence=None, sequence_list=None, **kw):
-    # Every body can modify Credit Card
-    entity = self.portal.organisation_module.newContent(
-                                               portal_type='Organisation')
-    credit_card = entity.newContent(portal_type='Credit Card')
-    # draft
-    for username in self.all_username_list:
-      self.failUnlessUserCanModifyDocument(username, credit_card)
-    for username in self.all_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                'validate_action', credit_card)
-    # validated
-    credit_card.validate()
-    self.assertEquals('validated', credit_card.getValidationState())
-    for username in self.all_username_list:
-      self.failUnlessUserCanModifyDocument(username, credit_card)
-    for username in self.all_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                'invalidate_action', credit_card)
-    # invalidated
-    credit_card.invalidate()
-    self.assertEquals('invalidated', credit_card.getValidationState())
-    for username in self.all_username_list:
-      self.failUnlessUserCanModifyDocument(username, credit_card)
-    for username in self.all_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                'validate_action', credit_card)
-
-  def stepAddPaymentNodeInPerson(self, sequence=None, sequence_list=None, **kw):
-    person = self.portal.person_module.newContent(portal_type='Person')
-    for username in self.all_username_list:
-      self._loginAsUser(username)
-      self.failUnlessUserCanAddDocument(username, person)
-      self.failUnless('Bank Account' in
-                    person.getVisibleAllowedContentTypeList())
-      self.failUnless('Credit Card' in
-                    person.getVisibleAllowedContentTypeList())
-    # when the entity is validated, we can still add some payment nodes
-    person.validate()
-    self.portal.portal_caches.clearAllCache()
-    for username in self.all_username_list:
-      self._loginAsUser(username)
-      self.failUnlessUserCanAddDocument(username, person)
-      self.failUnless('Bank Account' in
-                    person.getVisibleAllowedContentTypeList())
-      self.failUnless('Credit Card' in
-                    person.getVisibleAllowedContentTypeList())
-
-  def stepAddPaymentNodeInOrganisation(self, sequence=None, sequence_list=None, **kw):
-    org = self.portal.organisation_module.newContent(
-                                    portal_type='Organisation')
-    for username in self.all_username_list:
-      self._loginAsUser(username)
-      self.failUnlessUserCanAddDocument(username, org)
-      self.failUnless('Bank Account' in
-                    org.getVisibleAllowedContentTypeList())
-      self.failUnless('Credit Card' in
-                    org.getVisibleAllowedContentTypeList())
-    # when the entity is validated, we can still add some payment nodes
-    org.validate()
-    self.portal.portal_caches.clearAllCache()
-    for username in self.all_username_list:
-      self._loginAsUser(username)
-      self.failUnlessUserCanAddDocument(username, org)
-      self.failUnless('Bank Account' in
-                    org.getVisibleAllowedContentTypeList())
-      self.failUnless('Credit Card' in
-                    org.getVisibleAllowedContentTypeList())
-
-  def stepCopyAndPasteBankAccountInPerson(self, sequence=None, sequence_list=None, **kw):
-    # everybody can cp bank accounts in persons
-    person = self.portal.organisation_module.newContent(
-                                    portal_type='Organisation')
-    bank_account = person.newContent(
-                              portal_type='Bank Account')
-    for username in self.all_username_list:
-      self._loginAsUser(username)
-      bank_account.Base_createCloneDocument()
-
-  def stepCopyAndPasteBankAccountInOrganisation(self, sequence=None, sequence_list=None, **kw):
-    # everybody can cp bank accounts in organisation
-    organisation = self.portal.organisation_module.newContent(
-                                    portal_type='Organisation')
-    bank_account = organisation.newContent(
-                              portal_type='Bank Account')
-    for username in self.all_username_list:
-      self._loginAsUser(username)
-      bank_account.Base_createCloneDocument()
-
-  # }}}
-
-  ## Accounting Module {{{
-  def stepViewAccountingTransactionModule(self, sequence=None, sequence_list=None, **kw):
-    for username in self.all_username_list:
-      self.failUnlessUserCanViewDocument(username,
-              self.portal.accounting_module)
-      self.failUnlessUserCanAccessDocument(username,
-              self.portal.accounting_module)
-
-  def stepAddAccountingTransactionModule(self, sequence=None, sequence_list=None, **kw):
-    # Anyone can adds accounting transactions
-    for username in self.all_username_list:
-      self.failUnlessUserCanAddDocument(username,
-              self.portal.accounting_module)
-
-  def stepCopyAndPasteAccountingTransactions(self, sequence=None, sequence_list=None, **kw):
-    # Anyone can copy and paste accounting transaction.
-    for portal_type in self._getAccountingTransactionTypeList():
-      if portal_type != 'Balance Transaction':
-        transaction = self.portal.accounting_module.newContent(
-                                        portal_type=portal_type)
-        for username in self.all_username_list:
-          self._loginAsUser(username)
-          transaction.Base_createCloneDocument()
-
-  def _getAccountingTransactionTypeList(self):
-    module = self.portal.accounting_module
-    return [ti for ti in module.getVisibleAllowedContentTypeList()
-               if ti not in ('Balance Transaction', )]
-
-  def stepAccountingTransaction(self, sequence=None, sequence_list=None, **kw):
-    transaction = self.portal.accounting_module.newContent(
-                      portal_type='Accounting Transaction',
-                      start_date=DateTime(2001, 01, 01),
-                      stop_date=DateTime(2001, 01, 01))
-    self.assertEquals('draft', transaction.getSimulationState())
-    for username in self.all_username_list:
-      self.assertUserCanViewDocument(username, transaction)
-      self.assertUserCanAccessDocument(username, transaction)
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanModifyDocument(username, transaction)
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanModifyDocument(username, transaction)
-      self.failUnlessUserCanAddDocument(username, transaction)
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'cancel_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'plan_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'confirm_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'start_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'stop_action',
-                                                 transaction)
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'cancel_action',
-                                               transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'plan_action',
-                                               transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'confirm_action',
-                                               transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'stop_action',
-                                               transaction)
-      # TODO
-      ### self.failUnlessUserCanPassWorkflowTransition(username,
-      ###                                          'delete_action',
-      ###                                          transaction)
-
-    # (skip some states)
-    transaction.start()
-    self.assertEquals('started', transaction.getSimulationState())
-    self.stepTic()
-
-    for username in self.all_username_list:
-      # everybody can view
-      self.assertUserCanViewDocument(username, transaction)
-      self.assertUserCanAccessDocument(username, transaction)
-
-    # only accountant can modify
-    if self.restricted_security:
-      for username in  (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanModifyDocument(username, transaction)
-        self.failIfUserCanAddDocument(username, transaction)
-
-    if self.restricted_security:
-      # only accountant can "stop"
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'stop_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'deliver_action',
-                                                 transaction)
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'stop_action',
-                                               transaction)
-
-    transaction.stop()
-    self.assertEquals('stopped', transaction.getSimulationState())
-    for username in self.all_username_list:
-      # everybody can view
-      self.assertUserCanViewDocument(username, transaction)
-      self.assertUserCanAccessDocument(username, transaction)
-      # nobody can modify
-      self.failIfUserCanModifyDocument(username, transaction)
-      self.failIfUserCanAddDocument(username, transaction)
-
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'restart_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'deliver_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'cancel_action',
-                                                 transaction)
-
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'restart_action',
-                                               transaction)
-    # in started state, we can modify again, and go back to stopped state
-    transaction.restart()
-    self.assertEquals('started', transaction.getSimulationState())
-    self.stepTic()
-
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanModifyDocument(username, transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                                  'stop_action',
-                                                  transaction)
-
-    # go back to stopped state
-    transaction.stop()
-    self.assertEquals('stopped', transaction.getSimulationState())
-
-    # only accounting_manager can validate
-    self.failUnlessUserCanPassWorkflowTransition(self.accounting_manager_reference,
-                                            'deliver_action',
-                                             transaction)
-    if self.restricted_security:
-      self.failIfUserCanPassWorkflowTransition(self.accounting_agent_reference,
-                                              'deliver_action',
-                                               transaction)
-
-  def stepSaleInvoiceTransaction(self, sequence=None, sequence_list=None, **kw):
-    transaction = self.portal.accounting_module.newContent(
-                      portal_type='Sale Invoice Transaction',
-                      start_date=DateTime(2001, 01, 01),
-                      stop_date=DateTime(2001, 01, 01))
-    self.assertEquals('draft', transaction.getSimulationState())
-    for username in self.all_username_list:
-      self.assertUserCanViewDocument(username, transaction)
-      self.assertUserCanAccessDocument(username, transaction)
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanModifyDocument(username, transaction)
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanModifyDocument(username, transaction)
-      self.failUnlessUserCanAddDocument(username, transaction)
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list -
-                       self.sales_and_purchase_username_list):
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'cancel_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'plan_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'confirm_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'stop_action',
-                                                 transaction)
-
-    for username in self.sales_and_purchase_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                                   'cancel_action',
-                                                    transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                                   'plan_action',
-                                                    transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                                   'confirm_action',
-                                                    transaction)
-
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'cancel_action',
-                                               transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'plan_action',
-                                               transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'confirm_action',
-                                               transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'stop_action',
-                                               transaction)
-      # TODO
-      ### self.failUnlessUserCanPassWorkflowTransition(username,
-      ###                                          'delete_action',
-      ###                                          transaction)
-
-    # (skip some states)
-    transaction.start()
-    self.assertEquals('started', transaction.getSimulationState())
-    self.stepTic()
-
-    for username in self.all_username_list:
-      # everybody can view
-      self.assertUserCanViewDocument(username, transaction)
-      self.assertUserCanAccessDocument(username, transaction)
-
-    # only accountant can modify
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanModifyDocument(username, transaction)
-        self.failIfUserCanAddDocument(username, transaction)
-
-    if self.restricted_security:
-      # only accountant can "stop"
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'stop_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'deliver_action',
-                                                 transaction)
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'stop_action',
-                                               transaction)
-
-    transaction.stop()
-    self.assertEquals('stopped', transaction.getSimulationState())
-    for username in self.all_username_list:
-      # everybody can view
-      self.assertUserCanViewDocument(username, transaction)
-      self.assertUserCanAccessDocument(username, transaction)
-      # nobody can modify
-      self.failIfUserCanModifyDocument(username, transaction)
-      self.failIfUserCanAddDocument(username, transaction)
-
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'restart_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'deliver_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'cancel_action',
-                                                 transaction)
-
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'restart_action',
-                                               transaction)
-    # in started state, we can modify again, and go back to stopped state
-    transaction.restart()
-    self.assertEquals('started', transaction.getSimulationState())
-    self.stepTic()
-
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanModifyDocument(username, transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                                  'stop_action',
-                                                  transaction)
-
-    # go back to stopped state
-    transaction.stop()
-    self.assertEquals('stopped', transaction.getSimulationState())
-
-    # only accounting_manager can validate
-    self.failUnlessUserCanPassWorkflowTransition(self.accounting_manager_reference,
-                                            'deliver_action',
-                                             transaction)
-    if self.restricted_security:
-      self.failIfUserCanPassWorkflowTransition(self.accounting_agent_reference,
-                                              'deliver_action',
-                                               transaction)
-
-
-  def stepPurchaseInvoiceTransaction(self, sequence=None, sequence_list=None, **kw):
-    transaction = self.portal.accounting_module.newContent(
-                      portal_type='Purchase Invoice Transaction',
-                      start_date=DateTime(2001, 01, 01),
-                      stop_date=DateTime(2001, 01, 01))
-    self.assertEquals('draft', transaction.getSimulationState())
-    for username in self.all_username_list:
-      self.assertUserCanViewDocument(username, transaction)
-      self.assertUserCanAccessDocument(username, transaction)
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanModifyDocument(username, transaction)
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanModifyDocument(username, transaction)
-      self.failUnlessUserCanAddDocument(username, transaction)
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list -
-                       self.sales_and_purchase_username_list):
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'cancel_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'plan_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'confirm_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'stop_action',
-                                                 transaction)
-
-    for username in self.sales_and_purchase_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                                   'cancel_action',
-                                                    transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                                   'plan_action',
-                                                    transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                                   'confirm_action',
-                                                    transaction)
-      # XXX would require to go to confirmed state first
-      # self.failIfUserCanPassWorkflowTransition(username,
-      #                                         'start_action',
-      #                                         transaction)
-
-
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'cancel_action',
-                                               transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'plan_action',
-                                               transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'confirm_action',
-                                               transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'stop_action',
-                                               transaction)
-      # TODO
-      ### self.failUnlessUserCanPassWorkflowTransition(username,
-      ###                                          'delete_action',
-      ###                                          transaction)
-
-    # (skip some states)
-    transaction.start()
-    self.assertEquals('started', transaction.getSimulationState())
-    self.stepTic()
-
-    for username in self.all_username_list:
-      # everybody can view
-      self.assertUserCanViewDocument(username, transaction)
-      self.assertUserCanAccessDocument(username, transaction)
-
-    # only accountant can modify
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanModifyDocument(username, transaction)
-        self.failIfUserCanAddDocument(username, transaction)
-
-    if self.restricted_security:
-      # only accountant can "stop"
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'stop_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'deliver_action',
-                                                 transaction)
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'stop_action',
-                                               transaction)
-
-    transaction.stop()
-    self.assertEquals('stopped', transaction.getSimulationState())
-    for username in self.all_username_list:
-      # everybody can view
-      self.assertUserCanViewDocument(username, transaction)
-      self.assertUserCanAccessDocument(username, transaction)
-      # nobody can modify
-      self.failIfUserCanModifyDocument(username, transaction)
-      self.failIfUserCanAddDocument(username, transaction)
-
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'restart_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'deliver_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'cancel_action',
-                                                 transaction)
-
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'restart_action',
-                                               transaction)
-    # in started state, we can modify again, and go back to stopped state
-    transaction.restart()
-    self.assertEquals('started', transaction.getSimulationState())
-    self.stepTic()
-
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanModifyDocument(username, transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                                  'stop_action',
-                                                  transaction)
-
-    # go back to stopped state
-    transaction.stop()
-    self.assertEquals('stopped', transaction.getSimulationState())
-
-    # only accounting_manager can validate
-    self.failUnlessUserCanPassWorkflowTransition(self.accounting_manager_reference,
-                                            'deliver_action',
-                                             transaction)
-    if self.restricted_security:
-      self.failIfUserCanPassWorkflowTransition(self.accounting_agent_reference,
-                                              'deliver_action',
-                                               transaction)
-
-  def stepPaymentTransaction(self, sequence=None, sequence_list=None, **kw):
-    transaction = self.portal.accounting_module.newContent(
-                      portal_type='Payment Transaction',
-                      start_date=DateTime(2001, 01, 01),
-                      stop_date=DateTime(2001, 01, 01))
-    self.assertEquals('draft', transaction.getSimulationState())
-    for username in self.all_username_list:
-      self.assertUserCanViewDocument(username, transaction)
-      self.assertUserCanAccessDocument(username, transaction)
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanModifyDocument(username, transaction)
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanModifyDocument(username, transaction)
-      self.failUnlessUserCanAddDocument(username, transaction)
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'cancel_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'plan_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'confirm_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'start_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'stop_action',
-                                                 transaction)
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'cancel_action',
-                                               transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'plan_action',
-                                               transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'confirm_action',
-                                               transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'stop_action',
-                                               transaction)
-      # TODO
-      ### self.failUnlessUserCanPassWorkflowTransition(username,
-      ###                                          'delete_action',
-      ###                                          transaction)
-
-    # (skip some states)
-    transaction.start()
-    self.assertEquals('started', transaction.getSimulationState())
-    self.stepTic()
-
-    for username in self.all_username_list:
-      # everybody can view
-      self.assertUserCanViewDocument(username, transaction)
-      self.assertUserCanAccessDocument(username, transaction)
-
-    # only accountant can modify
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanModifyDocument(username, transaction)
-        self.failIfUserCanAddDocument(username, transaction)
-
-    # only accountant can "stop"
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'stop_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'deliver_action',
-                                                 transaction)
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'stop_action',
-                                               transaction)
-
-    transaction.stop()
-    self.assertEquals('stopped', transaction.getSimulationState())
-    for username in self.all_username_list:
-      # everybody can view
-      self.assertUserCanViewDocument(username, transaction)
-      self.assertUserCanAccessDocument(username, transaction)
-      # nobody can modify
-      self.failIfUserCanModifyDocument(username, transaction)
-      self.failIfUserCanAddDocument(username, transaction)
-
-    if self.restricted_security:
-      for username in (self.all_username_list - self.accountant_username_list):
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'restart_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'deliver_action',
-                                                 transaction)
-        self.failIfUserCanPassWorkflowTransition(username,
-                                                 'cancel_action',
-                                                 transaction)
-
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                               'restart_action',
-                                               transaction)
-    # in started state, we can modify again, and go back to stopped state
-    transaction.restart()
-    self.assertEquals('started', transaction.getSimulationState())
-    self.stepTic()
-
-    for username in self.accountant_username_list:
-      self.failUnlessUserCanModifyDocument(username, transaction)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                                  'stop_action',
-                                                  transaction)
-
-    # go back to stopped state
-    transaction.stop()
-    self.assertEquals('stopped', transaction.getSimulationState())
-
-    # only accounting_manager can validate
-    self.failUnlessUserCanPassWorkflowTransition(self.accounting_manager_reference,
-                                            'deliver_action',
-                                             transaction)
-    if self.restricted_security:
-      self.failIfUserCanPassWorkflowTransition(self.accounting_agent_reference,
-                                              'deliver_action',
-                                               transaction)
-
-  def stepBalanceTransaction(self, sequence=None, sequence_list=None, **kw):
-    # Balance Transaction must be viewable by users (creation & validation is
-    # done from unrestricted code, so no problem)
-    balance_transaction = self.portal.accounting_module.newContent(
-                      portal_type='Balance Transaction')
-    for username in self.all_username_list:
-      self.assertUserCanViewDocument(username, balance_transaction)
-      self.assertUserCanAccessDocument(username, balance_transaction)
-
-  def stepAccountingTransaction_getCausalityGroupedAccountingTransactionList(
-      self, sequence=None, sequence_list=None, **kw):
-    self._loginAsUser(self.accounting_manager_reference)
-    accounting_transaction_x_related_to_a = self.portal.\
-                                    accounting_module.newContent(
-                                    portal_type='Accounting Transaction',
-                                    start_date=DateTime(2010, 06, 01),
-                                    stop_date=DateTime(2010, 06, 01))
-
-    accounting_transaction_y_related_to_a = self.portal.\
-                                    accounting_module.newContent(
-                                    portal_type='Accounting Transaction',
-                                    start_date=DateTime(2010, 06, 01),
-                                    stop_date=DateTime(2010, 06, 01))
-
-    accounting_transaction_a = self.portal.accounting_module.newContent(
-                                    portal_type='Accounting Transaction',
-                                    start_date=DateTime(2010, 06, 01),
-                                    stop_date=DateTime(2010, 06, 01))
-  
-    accounting_transaction_b = self.portal.accounting_module.newContent(
-                                    portal_type='Accounting Transaction',
-                                    start_date=DateTime(2010, 06, 01),
-                                    stop_date=DateTime(2010, 06, 01))
-  
-    accounting_transaction_c = self.portal.accounting_module.newContent(
-                                   portal_type='Accounting Transaction',
-                                   start_date=DateTime(2010, 06, 01),
-                                   stop_date=DateTime(2010, 06, 01))
-    
-    accounting_transaction_x_related_to_a.setCausalityValue(\
-                                                   accounting_transaction_a)
-
-    accounting_transaction_y_related_to_a.setCausalityValue(\
-                                                   accounting_transaction_a)
-
-
-    accounting_transaction_a.setCausalityValueList([accounting_transaction_b,
-                                                    accounting_transaction_c])
-    self.stepTic()
-  
-    accounting_transaction_list = accounting_transaction_a.\
-          AccountingTransaction_getCausalityGroupedAccountingTransactionList()
-    
-    self.assertEquals(5, len(accounting_transaction_list))
-  
-    self.assertTrue(accounting_transaction_a in accounting_transaction_list)
-    self.assertTrue(accounting_transaction_b in accounting_transaction_list)
-    self.assertTrue(accounting_transaction_c in accounting_transaction_list)
-    self.assertTrue(accounting_transaction_x_related_to_a in \
-                                                accounting_transaction_list)
-    self.assertTrue(accounting_transaction_y_related_to_a in \
-                                                accounting_transaction_list)
-  
-    accounting_transaction_x_related_to_a.delete()
-    accounting_transaction_y_related_to_a.cancel()
-    self.stepTic()
- 
-    accounting_transaction_list = accounting_transaction_a.\
-          AccountingTransaction_getCausalityGroupedAccountingTransactionList()
-  
-    self.assertEquals(3, len(accounting_transaction_list))
-  
-    self.assertFalse(accounting_transaction_x_related_to_a in \
-                                                accounting_transaction_list)
-    self.assertFalse(accounting_transaction_y_related_to_a in \
-                                                accounting_transaction_list)
-
-  # }}}
-
-  ## Assignments / Login and Password {{{
-  def stepAddAssignments(self, sequence=None, sequence_list=None, **kw):
-    # for now, anybody can add assignements
-    person = self.portal.person_module.newContent(portal_type='Person')
-    for username in self.all_username_list:
-      self._loginAsUser(username)
-      self.failUnless('Assignment' in
-                  person.getVisibleAllowedContentTypeList())
-      self.failUnlessUserCanAddDocument(username, person)
-
-  def stepAssignmentTI(self, sequence=None, sequence_list=None, **kw):
-    ti = self.getTypesTool().getTypeInfo('Assignment')
-    self.assertNotEquals(None, ti)
-    # Acquire local roles on Assignment ? no
-    self.failIf(ti.getProperty('type_acquire_local_role', 1))
-
-  def stepEditAssignments(self, sequence=None, sequence_list=None, **kw):
-    # everybody can open assignments in express
-    person = self.portal.person_module.newContent(portal_type='Person')
-    assignment = person.newContent(portal_type='Assignment')
-    for username in self.all_username_list:
-      self.failUnlessUserCanModifyDocument(username, assignment)
-      self.failUnlessUserCanPassWorkflowTransition(username,
-                                                   'open_action',
-                                                   assignment)
-  # }}}
-
-  # {{{ Trade
-  def stepViewAcessAddPurchaseTradeCondition(self, sequence=None, sequence_list=None, **kw):
-    module = self.portal.purchase_trade_condition_module
-    for username in self.all_username_list:
-      self.assertUserCanViewDocument(username, module)
-      self.assertUserCanAccessDocument(username, module)
-    for username in self.sales_and_purchase_username_list:
-      self.assertUserCanAddDocument(username, module)
-      self._loginAsUser(username)
-      tc = module.newContent(portal_type='Purchase Trade Condition')
-      self.assertUserCanViewDocument(username, tc)
-      self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'validate_action', tc)
-      self.portal.portal_workflow.doActionFor(tc, 'validate_action')
-      self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'invalidate_action', tc)
-
-  def stepViewAccessAddSaleTradeCondition(self, sequence=None, sequence_list=None, **kw):
-    module = self.portal.sale_trade_condition_module
-    for username in self.all_username_list:
-      self.assertUserCanViewDocument(username, module)
-      self.assertUserCanAccessDocument(username, module)
-    for username in self.sales_and_purchase_username_list:
-      self.assertUserCanAddDocument(username, module)
-      self._loginAsUser(username)
-      tc = module.newContent(portal_type='Sale Trade Condition')
-      self.assertUserCanViewDocument(username, tc)
-      self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'validate_action', tc)
-      self.portal.portal_workflow.doActionFor(tc, 'validate_action')
-      self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'invalidate_action', tc)
-
-  def stepViewAccessAddSaleOrder(self, sequence=None, sequence_list=None, **kw):
-    module = self.portal.sale_order_module
-    for username in self.all_username_list:
-      self.assertUserCanViewDocument(username, module)
-      self.assertUserCanAccessDocument(username, module)
-    for username in self.sales_and_purchase_username_list:
-      self.assertUserCanAddDocument(username, module)
-      self._loginAsUser(username)
-      order = module.newContent(portal_type='Sale Order')
-      self.assertUserCanViewDocument(username, order)
-      self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'plan_action', order)
-      self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'confirm_action', order)
-      self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'cancel_action', order)
-
-      order.confirm()
-      self.assertEquals('confirmed', order.getSimulationState())
-      self.assertUserCanViewDocument(username, order)
-      self.failIfUserCanModifyDocument(username, order)
-
-
-  def stepViewAccessAddSalePackingList(self, sequence=None, sequence_list=None, **kw):
-    module = self.portal.sale_packing_list_module
-    for username in self.all_username_list:
-      self.assertUserCanViewDocument(username, module)
-      self.assertUserCanAccessDocument(username, module)
-    for username in self.sales_and_purchase_username_list:
-      self.assertUserCanAddDocument(username, module)
-      self._loginAsUser(username)
-      pl = module.newContent(portal_type='Sale Packing List')
-      self.assertUserCanViewDocument(username, pl)
-      self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'confirm_action', pl)
-
-  def stepViewAccessPurchaseOrder(self, sequence=None, sequence_list=None, **kw):
-    module = self.portal.purchase_order_module
-    for username in self.all_username_list:
-      self.assertUserCanViewDocument(username, module)
-      self.assertUserCanAccessDocument(username, module)
-    for username in self.sales_and_purchase_username_list:
-      self.assertUserCanAddDocument(username, module)
-      self._loginAsUser(username)
-      order = module.newContent(portal_type='Purchase Order')
-      self.assertUserCanViewDocument(username, order)
-      self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'plan_action', order)
-      self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'confirm_action', order)
-      self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'cancel_action', order)
-
-      order.confirm()
-      self.assertEquals('confirmed', order.getSimulationState())
-      self.assertUserCanViewDocument(username, order)
-      self.failIfUserCanModifyDocument(username, order)
-
-  def stepPurchasePackingList(self, sequence=None, sequence_list=None, **kw):
-    module = self.portal.purchase_packing_list_module
-    for username in self.all_username_list:
-      self.assertUserCanViewDocument(username, module)
-      self.assertUserCanAccessDocument(username, module)
-    for username in self.sales_and_purchase_username_list:
-      self.assertUserCanAddDocument(username, module)
-      self._loginAsUser(username)
-      pl = module.newContent(portal_type='Purchase Packing List')
-      self.assertUserCanViewDocument(username, pl)
-      self.failUnlessUserCanPassWorkflowTransition(
-                    username, 'confirm_action', pl)
-
-  # }}}
-  # web
-  def stepWebSiteModule(self, sequence=None, sequence_list=None, **kw):
-    """Anonymous should not be able to access web_site_module."""
-    web_site_module = self.portal.web_site_module
-    checkPermission = self.portal.portal_membership.checkPermission
-    # switch to Anonymous user
-    self.logout()
-    self.assertEquals(None, checkPermission('View', web_site_module))
-    self.assertEquals(None, checkPermission('Access Contents Information',web_site_module))
-    self.assertRaises(Unauthorized,  web_site_module)
-
-  # DMS
-  def stepPortalContributionsTool(self, sequence=None, sequence_list=None, **kw):
-    """
-      TioLive user should be able to contribute from this tool
-      (i.e. has Manage portal content).
-    """
-    portal_contributions = self.portal.portal_contributions
-    checkPermission = self.portal.portal_membership.checkPermission
-    for username in self.all_username_list:
-      self._loginAsUser(username)
-      self.assertEquals(True,  \
-                        checkPermission('Modify portal content', portal_contributions))
-
   def stepConfiguredPropertySheets(self, sequence=None, sequence_list=None, **kw):
     """
       Configurator can configure some PropertySheets.



More information about the Erp5-report mailing list