Commit 12571248 authored by Gabriel Monnerat's avatar Gabriel Monnerat

Merge branch 'master', remote branch 'origin' into rafael

parents 043e6a10 cb99c5a2
......@@ -51,13 +51,11 @@
<item>
<key> <string>_body</string> </key>
<value> <string>kw[\'parent_specialise_reference\'] = \'default_payment_rule\'\n
kw[\'portal_type\'] = \'Simulation Movement\'\n
kw[\'grand_parent_simulation_state\'] = [\'started\']\n
kw[\'grand_parent_simulation_state\'] = \'started\'\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
kw[\'max_movement_date\'] = DateTime() + 30 # XXX this is an arbitrary value for experimentation\n
# this could be an alarm configuration.\n
movement_list = [x.getObject() for x in context.PaymentTransaction_zSelectMovement(**kw)]\n
return movement_list\n
return context.PaymentTransaction_zSelectMovement(src__=src__, **kw)\n
</string> </value>
</item>
<item>
......
1477
\ No newline at end of file
1478
\ No newline at end of file
......@@ -50,23 +50,12 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>kw[\'parent_specialise_portal_type\'] = [\'Invoice Transaction Rule\', \'Invoice Transaction Simulation Rule\']\n
kw[\'explanation_portal_type\'] = [\'Sale Order\', \'Sale Invoice\', \'Sale Packing List\']\n
kw[\'portal_type\'] = \'Simulation Movement\'\n
kw[\'grand_parent_simulation_state\'] = [\'started\']\n
<value> <string>kw[\'parent_specialise_portal_type\'] = \'Invoice Transaction Rule\', \'Invoice Transaction Simulation Rule\'\n
kw[\'explanation_portal_type\'] = \'Sale Order\', \'Sale Invoice\', \'Sale Packing List\'\n
kw[\'grand_parent_simulation_state\'] = \'started\'\n
\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
\n
movement_list = [] \n
for movement in context.InvoiceTransaction_zSelectMovement(**kw) :\n
movement = movement.getObject()\n
if movement.getDeliveryValue() is None :\n
movement_list.append(movement)\n
else :\n
from Products.ERP5Type.Log import log\n
log(script.getId(), "simulation movement %s should not have been selected !" % movement.getPath())\n
\n
return movement_list\n
return context.InvoiceTransaction_zSelectMovement(**kw)\n
</string> </value>
</item>
<item>
......
105
\ No newline at end of file
106
\ No newline at end of file
......@@ -216,14 +216,14 @@ class TestRunMyDocsConfiguratorWorkflowMixin(TestLiveConfiguratorWorkflowMixin):
def _stepCheckKnowledgePadRole(self):
""" Check if Knowledge Pad is configured correctly """
self.portal.ERP5Site_createDefaultKnowledgePadListForUser()
self.stepTic()
self.tic()
current_user = self.portal.portal_membership.getAuthenticatedMember().getUserName()
pad = self.portal.portal_catalog.getResultValue(portal_type="Knowledge Pad",
owner=current_user)
gadget_uid = self.portal.portal_gadgets.test_wizard_gadget.getUid()
self.portal.KnowledgePad_addBoxList(uids=[gadget_uid],
active_pad_relative_url=pad.getRelativeUrl())
self.stepTic()
self.tic()
self.assertEquals(len(pad.contentValues()), 1)
box = pad.contentValues()[0]
self.assertEquals(box.getValidationState(), 'visible')
......
7
\ No newline at end of file
8
\ No newline at end of file
......@@ -32,6 +32,7 @@ import os
from DateTime import DateTime
from Products.ERP5Type.tests.Sequence import SequenceList
from Products.ERP5Type.tests.backportUnittest import expectedFailure
from Products.ERP5Type.tests.runUnitTest import tests_home
from Products.ERP5Type.tests.utils import FileUpload
from Products.ERP5Configurator.tests.ConfiguratorTestMixin import \
TestLiveConfiguratorWorkflowMixin
......@@ -864,9 +865,9 @@ class StandardConfigurationMixin(TestLiveConfiguratorWorkflowMixin):
quantity_unit='unit/piece',
individual_variation_base_category='variation',
base_contribution='base_amount/taxable')
self.stepTic()
self.tic()
resource.validate()
self.stepTic()
self.tic()
start_date = sale_trade_condition.getEffectiveDate() + 1
stop_date = sale_trade_condition.getExpirationDate() - 1
......@@ -877,31 +878,31 @@ class StandardConfigurationMixin(TestLiveConfiguratorWorkflowMixin):
destination_administration=destination_administration.getRelativeUrl(),
start_date=start_date,
stop_date=stop_date)
self.stepTic()
self.tic()
# Set the rest through the trade condition.
order.SaleOrder_applySaleTradeCondition()
self.stepTic()
self.tic()
order.newContent(portal_type='Sale Order Line',
resource=resource.getRelativeUrl(),
quantity=1.0)
self.stepTic()
self.tic()
# stepPlanSaleOrders
self.assertEquals(order.getSimulationState(), 'draft')
order.plan()
self.stepTic()
self.tic()
self.assertEquals(order.getSimulationState(), 'planned')
# stepOrderSaleOrders
order.order()
self.stepTic()
self.tic()
self.assertEquals(order.getSimulationState(), 'ordered')
# stepConfirmSaleOrders
order.confirm()
self.stepTic()
self.tic()
self.assertEquals(order.getSimulationState(), 'confirmed')
# stepCheckSaleOrderSimulation
......@@ -988,7 +989,7 @@ class TestConsultingConfiguratorWorkflow(StandardConfigurationMixin):
def uploadFile(self, file_id):
file_obj = getattr(self.portal, file_id)
file_path = '/tmp/%s' % file_id
file_path = tests_home + '/%s' % file_id
temp_file = open(file_path, 'w+b')
try:
temp_file.write(str(file_obj))
......
638
\ No newline at end of file
639
\ No newline at end of file
......@@ -245,7 +245,7 @@ class TestUNGConfiguratorWorkflowMixin(TestLiveConfiguratorWorkflowMixin):
""" Check permission of Web Site with normal user """
self.changeSkin("UNGDoc")
self.portal.web_page_module.ERP5Site_createNewWebDocument("web_page_template")
self.stepTic()
self.tic()
self.changeSkin("UNGDoc")
result_list = self.portal.web_site_module.ung.WebSection_getWebPageObjectList()
self.assertEquals(len(result_list), 1)
......@@ -256,7 +256,7 @@ class TestUNGConfiguratorWorkflowMixin(TestLiveConfiguratorWorkflowMixin):
new_object.edit(title="New")
new_object = self.portal.web_page_module.newContent(portal_type="Web Illustration")
new_object.edit(title="New")
self.stepTic()
self.tic()
kw = {"portal_type": "Web Page", "title": "New"}
self.changeSkin("UNGDoc")
result_list = self.portal.web_site_module.ung.WebSection_getWebPageObjectList(**kw)
......@@ -278,12 +278,12 @@ class TestUNGConfiguratorWorkflowMixin(TestLiveConfiguratorWorkflowMixin):
pad = self.portal.knowledge_pad_module.newContent(portal_type="Knowledge Pad")
pad.edit(publication_section_value=self.portal.web_site_module.ung)
pad.visible()
self.stepTic()
self.tic()
gadget = self.portal.portal_gadgets.searchFolder()[0]
gadget_id = gadget.getId()
self.changeSkin("UNGDoc")
self.portal.web_site_module.ung.WebSection_addGadgetList(gadget_id)
self.stepTic()
self.tic()
box_list = pad.contentValues()
self.assertEquals(len(box_list), 1)
knowledge_box = box_list[0]
......@@ -309,7 +309,7 @@ class TestUNGConfiguratorWorkflowMixin(TestLiveConfiguratorWorkflowMixin):
portal.REQUEST.form.update(event_dict)
self.changeSkin("UNGDoc")
portal.event_module.EventModule_createNewEvent()
self.stepTic()
self.tic()
event = portal.portal_catalog.getResultValue(portal_type="Note")
self.assertEquals(event.getDescription(), "testUNG Sample")
start_date = event.getStartDate()
......
57
\ No newline at end of file
58
\ No newline at end of file
......@@ -15,7 +15,6 @@
<value>
<list>
<string>application/vnd.ms-excel</string>
<string>application/vnd.ms-office</string>
<string>application/msexcel</string>
<string>application/vnd.oasis.opendocument.spreadsheet</string>
<string>application/vnd.oasis.opendocument.spreadsheet-template</string>
......
1264
\ No newline at end of file
1265
\ No newline at end of file
......@@ -50,19 +50,9 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>kw[\'parent_specialise_portal_type\'] = [\'Amortisation Rule\']\n
kw[\'portal_type\'] = \'Simulation Movement\'\n
\n
<value> <string>kw[\'parent_specialise_portal_type\'] = \'Amortisation Rule\'\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
\n
context.log(\'AmortisationTransaction_selectMovement\', \'SQL\\n%s\' % context.AmortisationTransaction_zSelectMovement(src__=1, **kw))\n
\n
if src__==0:\n
movement_list = [x.getObject() for x in context.AmortisationTransaction_zSelectMovement(**kw)]\n
#context.log(\'SaleOrder_selectMovement\', \'mvt : %s\' % movement_list)\n
return movement_list\n
else:\n
return context.AmortisationTransaction_zSelectMovement(src__=1, **kw)\n
return context.AmortisationTransaction_zSelectMovement(src__=src__, **kw)\n
</string> </value>
</item>
<item>
......
178
\ No newline at end of file
179
\ No newline at end of file
......@@ -55,6 +55,9 @@
Simulation Movements can come from normal Invoice Transaction Rule\n
and same rule which is children of Trade Model Rule """\n
\n
buildSQLQuery = context.portal_catalog.buildSQLQuery\n
select = context.InvoiceTransaction_zSelectMovement\n
\n
# search for normal movements\n
kw[\'parent_specialise_reference\'] = [\'default_invoice_transaction_rule\']\n
kw[\'grand_grand_parent_specialise_reference\'] = [\n
......@@ -70,32 +73,20 @@ else:\n
\'%s Packing List\' % trade_type,\n
\'Returned %s Packing List\' % trade_type]\n
kw[\'portal_type\'] = \'Simulation Movement\'\n
kw[\'grand_parent_simulation_state\'] = [\'started\']\n
\n
search_kw = kw.copy()\n
search_kw.update(context.portal_catalog.buildSQLQuery(**search_kw))\n
search_kw[\'grand_parent_simulation_state\'] = [\'started\']\n
search_kw.update(buildSQLQuery(**search_kw))\n
\n
normal_movement_list = [movement for movement in context.InvoiceTransaction_zSelectMovement(**search_kw)]\n
movement_list = list(select(**search_kw))\n
\n
# update query to search for movements which are children of Trade Model Rule\n
kw.pop(\'grand_parent_simulation_state\')\n
kw[\'grand_grand_parent_specialise_reference\'] = \'default_trade_model_rule\'\n
kw[\'grand_grand_grand_parent_simulation_state\'] = [\'started\']\n
\n
search_kw = kw.copy()\n
\n
search_kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
\n
trade_model_movement_list = [movement for movement in context.InvoiceTransaction_zSelectMovement(**search_kw)]\n
kw.update(buildSQLQuery(**kw))\n
\n
movement_list = [] \n
for movement in normal_movement_list + trade_model_movement_list:\n
movement = movement.getObject()\n
if movement.getDeliveryValue() is None and movement not in movement_list :\n
movement_list.append(movement)\n
else :\n
from Products.ERP5Type.Log import log\n
log(script.getId(), "simulation movement %s should not have been selected !" % movement.getPath())\n
movement_list += select(**kw)\n
\n
return movement_list\n
</string> </value>
......
......@@ -50,23 +50,12 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>kw[\'parent_specialise_portal_type\'] = [\'Invoicing Rule\', \'Invoice Simulation Rule\']\n
kw[\'explanation_portal_type\'] = [\'Purchase Order\', \'Purchase Packing List\', \'Returned Purchase Packing List\']\n
kw[\'portal_type\'] = \'Simulation Movement\'\n
kw[\'grand_parent_simulation_state\'] = [\'started\', \'stopped\', \'delivered\']\n
<value> <string>kw[\'parent_specialise_portal_type\'] = \'Invoicing Rule\', \'Invoice Simulation Rule\'\n
kw[\'explanation_portal_type\'] = \'Purchase Order\', \'Purchase Packing List\', \'Returned Purchase Packing List\'\n
kw[\'grand_parent_simulation_state\'] = \'started\', \'stopped\', \'delivered\'\n
\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
\n
movement_list = [] \n
for movement in context.InvoiceTransaction_zSelectMovement(**kw) :\n
movement = movement.getObject()\n
if movement.getDeliveryValue() is None :\n
movement_list.append(movement)\n
else : \n
from Products.ERP5Type.Log import log\n
log(script.getId(), "simulation movement %s should not have been selected !" % movement.getPath())\n
\n
return movement_list\n
return context.InvoiceTransaction_zSelectMovement(**kw)\n
</string> </value>
</item>
<item>
......
......@@ -50,26 +50,13 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>kw[\'parent_specialise_portal_type\'] = [\'Trade Model Rule\', \'Trade Model Simulation Rule\']\n
kw[\'explanation_portal_type\'] = [\'Purchase Order\', \'Purchase Packing List\', \'Returned Purchase Packing List\',\n
\'Purchase Invoice Transaction\', \'Purchase Invoice\']\n
kw[\'portal_type\'] = \'Simulation Movement\'\n
kw[\'grand_parent_simulation_state\'] = [\'started\', \'stopped\', \'delivered\', \'confirmed\']\n
<value> <string>kw[\'parent_specialise_portal_type\'] = \'Trade Model Rule\', \'Trade Model Simulation Rule\'\n
kw[\'explanation_portal_type\'] = (\'Purchase Order\', \'Purchase Packing List\', \'Returned Purchase Packing List\',\n
\'Purchase Invoice Transaction\', \'Purchase Invoice\')\n
kw[\'grand_parent_simulation_state\'] = \'started\', \'stopped\', \'delivered\', \'confirmed\'\n
\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
\n
movement_list = [] \n
for movement in context.InvoiceTransaction_zSelectMovement(**kw):\n
movement = movement.getObject()\n
if movement.getDeliveryValue() is None :\n
movement_list.append(movement)\n
else :\n
from Products.ERP5Type.Log import log\n
log(script.getId(),\n
"simulation movement %s should not have been selected !" % movement.getPath())\n
\n
\n
return movement_list\n
return context.InvoiceTransaction_zSelectMovement(**kw)\n
</string> </value>
</item>
<item>
......
......@@ -50,24 +50,12 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>kw[\'parent_specialise_portal_type\'] = [\'Invoicing Rule\', \'Invoice Simulation Rule\']\n
kw[\'explanation_portal_type\'] = [\'Sale Order\', \'Sale Packing List\', \'Returned Sale Packing List\']\n
kw[\'portal_type\'] = \'Simulation Movement\'\n
kw[\'grand_parent_simulation_state\'] = [\'started\', \'stopped\', \'delivered\']\n
<value> <string>kw[\'parent_specialise_portal_type\'] = \'Invoicing Rule\', \'Invoice Simulation Rule\'\n
kw[\'explanation_portal_type\'] = \'Sale Order\', \'Sale Packing List\', \'Returned Sale Packing List\'\n
kw[\'grand_parent_simulation_state\'] = \'started\', \'stopped\', \'delivered\'\n
\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
\n
movement_list = [] \n
for movement in context.InvoiceTransaction_zSelectMovement(**kw) :\n
movement = movement.getObject()\n
if movement.getDeliveryValue() is None :\n
movement_list.append(movement)\n
else :\n
from Products.ERP5Type.Log import log\n
log("SaleInvoice_selectPackingListMovement", \\\n
"simulation movement %s should not have been selected !" % movement.getPath())\n
\n
return movement_list\n
return context.InvoiceTransaction_zSelectMovement(**kw)\n
</string> </value>
</item>
<item>
......
......@@ -50,26 +50,13 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>kw[\'parent_specialise_portal_type\'] = [\'Trade Model Rule\', \'Trade Model Simulation Rule\']\n
kw[\'explanation_portal_type\'] = [\'Sale Order\', \'Sale Packing List\', \'Returned Sale Packing List\',\n
\'Sale Invoice Transaction\', \'Sale Invoice\']\n
kw[\'portal_type\'] = \'Simulation Movement\'\n
kw[\'grand_parent_simulation_state\'] = [\'started\', \'stopped\', \'delivered\', \'confirmed\']\n
<value> <string>kw[\'parent_specialise_portal_type\'] = \'Trade Model Rule\', \'Trade Model Simulation Rule\'\n
kw[\'explanation_portal_type\'] = (\'Sale Order\', \'Sale Packing List\', \'Returned Sale Packing List\',\n
\'Sale Invoice Transaction\', \'Sale Invoice\')\n
kw[\'grand_parent_simulation_state\'] = \'started\', \'stopped\', \'delivered\', \'confirmed\'\n
\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
\n
movement_list = [] \n
for movement in context.InvoiceTransaction_zSelectMovement(**kw):\n
movement = movement.getObject()\n
if movement.getDeliveryValue() is None :\n
movement_list.append(movement)\n
else :\n
from Products.ERP5Type.Log import log\n
log(script.getId(),\n
"simulation movement %s should not have been selected !" % movement.getPath())\n
\n
\n
return movement_list\n
return context.InvoiceTransaction_zSelectMovement(**kw)\n
</string> </value>
</item>
<item>
......
380
\ No newline at end of file
381
\ No newline at end of file
......@@ -50,38 +50,30 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>def test(movement):\n
root_applied_rule = movement.getRootAppliedRule()\n
root_rule = root_applied_rule.getSpecialiseValue()\n
root_movement = movement.getRootSimulationMovement()\n
parent_applied_rule = movement.getParentValue()\n
parent_rule = parent_applied_rule.getSpecialiseValue()\n
return (\n
root_rule.getPortalType() in ("Production Order Rule",\n
"Production Order Root Simulation Rule") and\\\n
parent_rule.getPortalType() == "Transformation Rule" and\\\n
root_movement.getSimulationState() == "confirmed"\n
)\n
search_kw = {\n
\'explanation_portal_type\': \'Production Order\',\n
\'portal_type\': \'Simulation Movement\',\n
}\n
<value> <string>kw[\'explanation_portal_type\'] = \'Production Order\'\n
kw[\'parent_specialise_portal_type\'] = \'Transformation Rule\'\n
\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
result = context.ProductionOrder_zSelectMovement(src__=src__, **kw)\n
if src__:\n
result\n
\n
if explanation_uid is not None:\n
search_kw[\'explanation_uid\'] = explanation_uid\n
search_kw.update(context.portal_catalog.buildSQLQuery(**search_kw))\n
movement_list = []\n
for movement in result:\n
movement = movement.getObject()\n
root_movement = movement.getRootSimulationMovement()\n
root_rule = root_movement.getParentValue().getSpecialiseValue()\n
if root_rule.getPortalType() in ("Production Order Rule",\n
"Production Order Root Simulation Rule") \\\n
and root_movement.getSimulationState() == "confirmed":\n
movement_list.append(movement)\n
\n
if src__==0:\n
movement_list = [x.getObject() for x in context.ProductionOrder_zSelectMovement(**search_kw)]\n
movement_list = [x for x in movement_list if test(x)]\n
return movement_list\n
else:\n
return context.ProductionOrder_zSelectMovement(src__=1, **search_kw)\n
return movement_list\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>explanation_uid=None, src__=0, **kw</string> </value>
<value> <string>src__=0, **kw</string> </value>
</item>
<item>
<key> <string>_proxy_roles</string> </key>
......
......@@ -50,44 +50,34 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>def test(movement):\n
root_applied_rule = movement.getRootAppliedRule()\n
root_rule = root_applied_rule.getSpecialiseValue()\n
root_movement = movement.getRootSimulationMovement()\n
parent_applied_rule = movement.getParentValue()\n
parent_rule = parent_applied_rule.getSpecialiseValue()\n
return (\n
((root_rule.getPortalType() in ("Production Order Rule",) and\\\n
parent_rule.getPortalType() in ("Transformation Sourcing Rule",\n
"Production Order Rule")) or\\\n
(root_rule.getPortalType() in ("Production Order Root Simulation Rule",) and\\\n
parent_rule.getPortalType() in ("Transformation Sourcing Rule",\n
"Delivery Simulation Rule"))) and\\\n
root_movement.getSimulationState() == "confirmed"\n
)\n
<value> <string>kw[\'explanation_portal_type\'] = \'Production Order\'\n
\n
# XXX need to implement this part in the catalog\n
# portal type causality of root applied rule\n
search_kw = {\n
\'explanation_portal_type\': \'Production Order\',\n
\'portal_type\': \'Simulation Movement\',\n
}\n
if explanation_uid is not None:\n
search_kw[\'explanation_uid\'] = explanation_uid\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
result = context.ProductionOrder_zSelectMovement(src__=src__, **kw)\n
if src__:\n
result\n
\n
search_kw.update(context.portal_catalog.buildSQLQuery(**search_kw))\n
movement_list = []\n
for movement in result:\n
movement = movement.getObject()\n
root_movement = movement.getRootSimulationMovement()\n
root_type = root_movement.getParentValue().getSpecialiseValue().getPortalType()\n
parent_type = movement.getParentValue().getSpecialiseValue().getPortalType()\n
if (root_type == "Production Order Rule" and\n
parent_type in ("Transformation Sourcing Rule",\n
"Production Order Rule") or\n
root_type == "Production Order Root Simulation Rule" and\n
parent_type in ("Transformation Sourcing Rule",\n
"Delivery Simulation Rule")) \\\n
and root_movement.getSimulationState() == "confirmed":\n
movement_list.append(movement)\n
\n
if src__==0:\n
movement_list = [x.getObject() for x in context.ProductionOrder_zSelectMovement(**search_kw)]\n
movement_list = [x for x in movement_list if test(x)]\n
return movement_list\n
else:\n
return context.ProductionOrder_zSelectMovement(src__=1, **search_kw)\n
return movement_list\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>explanation_uid=None, src__=0, **kw</string> </value>
<value> <string>src__=0, **kw</string> </value>
</item>
<item>
<key> <string>_proxy_roles</string> </key>
......
473
\ No newline at end of file
474
\ No newline at end of file
......@@ -50,40 +50,18 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>DEBUG = 0\n
LOG = lambda msg:context.log("PaySheetTransaction_selectMovement", msg)\n
<value> <string>kw[\'parent_specialise_portal_type\'] = (\'Invoice Transaction Rule\',\n
\'Invoice Transaction Simulation Rule\')\n
kw[\'explanation_portal_type\'] = \'Pay Sheet Transaction\'\n
kw[\'grand_parent_simulation_state\'] = \'confirmed\', \'started\'\n
\n
search_kw=dict(\n
parent_specialise_portal_type=[\'Invoice Transaction Rule\', \'Invoice Transaction Simulation Rule\'],\n
explanation_portal_type=[\'Pay Sheet Transaction\'],\n
portal_type=\'Simulation Movement\',\n
grand_parent_simulation_state=[\'confirmed\', \'started\'])\n
\n
if explanation_uid:\n
search_kw[\'explanation_uid\'] = explanation_uid\n
\n
kw.update(context.portal_catalog.buildSQLQuery(**search_kw))\n
\n
if DEBUG :\n
LOG("SQL used (for %s) = %s" % (kw, context.InvoiceTransaction_zSelectMovement(src__=1, **kw)))\n
\n
movement_list = []\n
for movement in context.InvoiceTransaction_zSelectMovement(**kw) :\n
movement = movement.getObject()\n
if movement.getDeliveryValue() is None :\n
movement_list.append(movement)\n
else :\n
LOG("simulation movement %s should not have been selected !" % movement.getPath())\n
\n
if DEBUG :\n
LOG("selected movement_list : %s" % movement_list)\n
\n
return movement_list\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
return context.InvoiceTransaction_zSelectMovement(src__=src__, **kw)\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>explanation_uid=None, **kw</string> </value>
<value> <string>src__=0, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
591
\ No newline at end of file
592
\ No newline at end of file
......@@ -54,10 +54,10 @@ class TestERP5PayzenSecurePaymentMixin(ERP5TypeTestCase):
if not self.portal.hasObject('portal_secure_payments'):
self.portal.manage_addProduct['ERP5SecurePayment'].manage_addTool(
'ERP5 Secure Payment Tool', None)
self.stepTic()
self.tic()
self.service = self.portal.portal_secure_payments.newContent(
portal_type='Payzen Service')
self.stepTic()
self.tic()
def getMessageList(o):
return [str(q.getMessage()) for q in o.checkConsistency()]
......@@ -115,7 +115,7 @@ class TestERP5PayzenSecurePayment(TestERP5PayzenSecurePaymentMixin):
super(TestERP5PayzenSecurePayment, self).afterSetUp()
self.service_password = '0123456789012345'
self.service.edit(service_password=self.service_password)
self.stepTic()
self.tic()
def test_getSignature_dict_simple(self):
self.assertEqual(
......
47
\ No newline at end of file
48
\ No newline at end of file
......@@ -50,32 +50,13 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>DEBUG = 1\n
from Products.ERP5Type.Log import log\n
LOG = lambda msg:log("SaleInvoice_selectPackingListMovement", msg)\n
\n
kw[\'parent_specialise_portal_type\'] = [\'Invoicing Rule\', \'Invoice Simulation Rule\']\n
kw[\'explanation_portal_type\'] = [\'Task\', \'Task Report\']\n
kw[\'portal_type\'] = \'Simulation Movement\'\n
kw[\'grand_parent_simulation_state\'] = [\'started\', \'stopped\',\'delivered\']\n
<value> <string>kw[\'parent_specialise_portal_type\'] = (\'Invoicing Rule\',\n
\'Invoice Simulation Rule\')\n
kw[\'explanation_portal_type\'] = \'Task\', \'Task Report\'\n
kw[\'grand_parent_simulation_state\'] = \'started\', \'stopped\', \'delivered\'\n
\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
\n
if DEBUG : \n
LOG("SQL used = %s"%context.InvoiceTransaction_zSelectMovement(src__=1, **kw))\n
\n
movement_list = [] \n
for movement in context.InvoiceTransaction_zSelectMovement(**kw) :\n
movement = movement.getObject()\n
if movement.getDeliveryValue() is None :\n
movement_list.append(movement)\n
else : \n
LOG("simulation movement %s should not have been selected !" % movement.getPath())\n
\n
if DEBUG :\n
LOG("selected movement_list : %s"%movement_list)\n
\n
return movement_list\n
return context.InvoiceTransaction_zSelectMovement(**kw)\n
</string> </value>
</item>
<item>
......
......@@ -63,12 +63,7 @@ kw[\'query\'] = ComplexQuery(\n
operator=\'and\')\n
\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
\n
if src__==0:\n
movement_list = [x.getObject() for x in context.Task_zSelectMovement(**kw)]\n
return movement_list\n
else:\n
return context.Order_zSelectMovement(src__=1, **kw)\n
return context.Order_zSelectMovement(src__=src__, **kw)\n
</string> </value>
</item>
<item>
......
812
\ No newline at end of file
813
\ No newline at end of file
......@@ -74,7 +74,7 @@ class TestRunMyDoc(ERP5TypeTestCase):
portal_type='Web Site',
id=self.website_id)
website.publish()
self.stepTic()
self.tic()
test_page = self.portal.test_page_module.newContent(
portal_type="Test Page",
......@@ -83,7 +83,7 @@ class TestRunMyDoc(ERP5TypeTestCase):
version="001")
test_page.publish()
self.stepTic()
self.tic()
document = website.WebSection_getDocumentValue(test_page_reference)
......@@ -105,19 +105,19 @@ class TestRunMyDoc(ERP5TypeTestCase):
reference=web_page_reference,
language="en", version="001")
web_page.publishAlive()
self.stepTic()
self.tic()
image_reference = "IMAGE-REFERENCE-%s" % str(time())
image_page = self.portal.image_module.newContent(
reference=image_reference,
language="en", version="001")
image_page.publishAlive()
self.stepTic()
self.tic()
image_page_2 = self.portal.image_module.newContent(
reference=image_reference,
language="en", version="002")
image_page_2.publishAlive()
self.stepTic()
self.tic()
self.portal.REQUEST.form['data_uri'] = image_upload
fake_image_reference = "DO-NOT-EXISTANT-IMAGE"
......@@ -130,7 +130,7 @@ class TestRunMyDoc(ERP5TypeTestCase):
self.assertEquals(None,
self.portal.Zuite_uploadScreenshot(image_upload, image_reference))
self.stepTic()
self.tic()
# The right image were updated.
image_upload.seek(0)
self.assertEquals(image_page_2.getData(), image_upload.read().decode("base64"))
......@@ -223,7 +223,7 @@ class TestRunMyDoc(ERP5TypeTestCase):
self.assertEquals(test_page.TestPage_viewSeleniumTest(), expected_test_html %
("ERP5TypeTestCase", ""))
self.stepTic()
self.tic()
test_page.TestPage_runSeleniumTest()
zuite = getattr(self.portal.portal_tests, 'TESTPAGEREFERENCE', None)
......@@ -291,7 +291,7 @@ class TestRunMyDoc(ERP5TypeTestCase):
self.assertEquals(test_page.TestPage_viewSeleniumTest(REQUEST=self.portal.REQUEST),
expected_test_html % ("http://toto.com", "toto", "toto"))
self.stepTic()
self.tic()
test_page.TestPage_runSeleniumTest()
zuite = getattr(self.portal.portal_tests, 'TESTPAGEREFERENCE', None)
......
64
\ No newline at end of file
65
\ No newline at end of file
......@@ -64,11 +64,7 @@ kw[\'query\'] = ComplexQuery(\n
\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
\n
if src__==0:\n
movement_list = [x.getObject() for x in context.Order_zSelectMovement(**kw)]\n
return movement_list\n
else:\n
return context.Order_zSelectMovement(src__=1, **kw)\n
return context.Order_zSelectMovement(src__=src__, **kw)\n
</string> </value>
</item>
<item>
......
......@@ -64,11 +64,7 @@ kw[\'query\'] = ComplexQuery(\n
\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
\n
if src__==0:\n
movement_list = [x.getObject() for x in context.Order_zSelectMovement(**kw)]\n
return movement_list\n
else:\n
return context.Order_zSelectMovement(src__=1, **kw)\n
return context.Order_zSelectMovement(src__=src__, **kw)\n
</string> </value>
</item>
<item>
......
......@@ -63,15 +63,7 @@ kw[\'query\'] = ComplexQuery(\n
operator=\'and\')\n
\n
kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
#from Products.ERP5Type.Log import log\n
#log(\'SaleOrder_selectMovement\', \'SQL\\n%s\' % context.Order_zSelectMovement(src__=1, **kw))\n
\n
if src__==0:\n
movement_list = [x.getObject() for x in context.Order_zSelectMovement(**kw)]\n
#log(\'SaleOrder_selectMovement\', \'mvt : %s\' % movement_list)\n
return movement_list\n
else:\n
return context.Order_zSelectMovement(src__=1, **kw)\n
return context.Order_zSelectMovement(src__=src__, **kw)\n
</string> </value>
</item>
<item>
......
1150
\ No newline at end of file
1151
\ No newline at end of file
......@@ -63,7 +63,7 @@ class TestLiveUpgrader(ERP5TypeLiveTestCase):
self.portal.portal_types.Person.setTypePropertySheetList(new_property_sheet_list)
self.assertFalse("Account" in self.portal.portal_types.Person.getTypePropertySheetList())
self.stepTic()
self.tic()
ERP5TypeLiveTestCase.beforeTearDown(self)
def test_UpgradeSignatureAPI(self):
......@@ -176,7 +176,7 @@ class TestLiveUpgrader(ERP5TypeLiveTestCase):
# Create one broken object
gadget = self.portal.portal_gadgets.newContent(portal_type="Gadget",
id=self.upgrade_object_test_id)
self.stepTic()
self.tic()
createZODBPythonScript(self.getPortal().portal_skins.custom,
"test_upgradeObject", 'x', 'return [1]')
......@@ -191,7 +191,7 @@ class TestLiveUpgrader(ERP5TypeLiveTestCase):
self.assertNotEquals(self.portal.ERP5Site_upgradeObjectClass(), [])
self.assertEquals(self.portal.ERP5Site_upgradeObjectClass(upgrade=1),
[(gadget.getRelativeUrl(), 'ERP5 Gadget')])
self.stepTic()
self.tic()
self.assertEquals(self.portal.ERP5Site_upgradeObjectClass(), [])
def test_UpgradeGlobalPropertyList(self):
......@@ -213,7 +213,7 @@ class TestLiveUpgrader(ERP5TypeLiveTestCase):
self.assertEquals(["Upgrade Executed for Global Properties (erp5_site_global_id)."],
self.portal.ERP5Site_upgradeGlobalPropertyList(upgrade=1))
self.stepTic()
self.tic()
self.assertEquals(self.portal.ERP5Site_upgradeGlobalPropertyList(), [])
self.assertEquals(getattr(self.portal, 'erp5_site_global_id', None),
self.upgrade_object_test_id)
......@@ -244,7 +244,7 @@ class TestLiveUpgrader(ERP5TypeLiveTestCase):
self.assertEquals(self.portal.ERP5Site_upgradeWorkflowChain(upgrade=1),
["Upgrade Executed for Workflow Chain."])
self.stepTic()
self.tic()
self.assertEquals(self.portal.ERP5Site_upgradeWorkflowChain(),[])
self.assertEquals(workflow_tool.getWorkflowChainDict()["chain_Person"],
original_person_chain)
......@@ -280,7 +280,7 @@ class TestLiveUpgrader(ERP5TypeLiveTestCase):
["Person doesn't has Account associated."])
self.assertEquals(self.portal.ERP5Site_upgradePortalTypePropertySheet(upgrade=1),
["Associate PropertySheet Account into Portal Type Person."])
self.stepTic()
self.tic()
self.assertEquals(self.portal.ERP5Site_upgradePortalTypePropertySheet(), [])
......@@ -303,7 +303,7 @@ class TestLiveUpgrader(ERP5TypeLiveTestCase):
self.commit()
self.assertTrue(object_to_test.hasActivity(method_id="ERP5Site_testRecreateActivityScript"))
self.assertTrue(self.portal.portal_activities.hasActivity(method_id='ERP5Site_clearActivities'))
self.stepTic()
self.tic()
self.assertFalse(object_to_test.hasActivity(method_id="ERP5Site_testRecreateActivityScript"))
self.assertFalse(self.portal.portal_activities.hasActivity(method_id='ERP5Site_clearActivities'))
self.assertEquals(object_to_test.getProperty('custom_property_without_meaning'),
......
595
\ No newline at end of file
596
\ No newline at end of file
......@@ -66,6 +66,6 @@ class ShaCacheMixin(object):
'Authorization': 'Basic %s' % (base64.encodestring('ERP5TypeTestCase:'))
}
self.shacache_url = self.shacache.absolute_url()
self.stepTic()
self.tic()
self.data = 'Random Content. %s' % str(random.random())
self.key = hashlib.sha512(self.data).hexdigest()
64
\ No newline at end of file
65
\ No newline at end of file
......@@ -99,4 +99,4 @@ class ShaDirMixin(object):
title='SHA Dir Server', skin_selection_name='SHADIR')
self.shadir.publish()
self.shadir_url = self.shadir.absolute_url()
self.stepTic()
self.tic()
71
\ No newline at end of file
72
\ No newline at end of file
......@@ -72,7 +72,7 @@ class TestUNGSecurity(ERP5TypeTestCase):
def beforeTearDown(self):
person_module = self.getPersonModule()
person_module.manage_delObjects(list(person_module.objectIds()))
self.stepTic()
self.tic()
def afterSetUp(self):
if self.portal.portal_preferences.ung_preference.getPreferenceState() != "global":
......@@ -82,7 +82,7 @@ class TestUNGSecurity(ERP5TypeTestCase):
assignment = person.newContent(portal_type='Assignment')
assignment.setFunction("function/ung_user")
assignment.open()
self.stepTic()
self.tic()
def testERP5Site_createNewWebDocumentAsAnonymous(self):
"""Test use script ERP5Site_createNewWebDocument as Anonymous User"""
......@@ -100,7 +100,7 @@ class TestUNGSecurity(ERP5TypeTestCase):
self.assertEquals(web_page, None)
self.changeSkin("UNGDoc")
self.portal.ERP5Site_createNewWebDocument("web_page_template")
self.stepTic()
self.tic()
web_page = self.portal.portal_catalog.getResultValue(portal_type="Web Page")
self.assertEquals(web_page.getReference(), "default-Web.Page.Reference")
self.assertEquals(len(self.portal.web_page_module.searchFolder()), 1)
......@@ -113,20 +113,20 @@ class TestUNGSecurity(ERP5TypeTestCase):
assignment = person.newContent(portal_type='Assignment')
assignment.setFunction("function/ung_user")
assignment.open()
self.stepTic()
self.tic()
self.login("ung_user")
self.changeSkin("UNGDoc")
self.portal.ERP5Site_createNewWebDocument("web_table_template")
self.stepTic()
self.tic()
web_table = self.portal.portal_catalog.getResultValue(portal_type="Web Table")
web_table.setReference("share-Web.Table")
self.stepTic()
self.tic()
self.login("ung_user2")
self.assertEquals(len(self.portal.web_page_module.searchFolder()), 0)
ung_web_site = self.portal.web_site_module.ung
self.changeSkin("UNGDoc")
web_table = ung_web_site.ERP5Site_userFollowUpWebPage("share-Web.Table")
self.stepTic()
self.tic()
self.assertNotEquals(web_table.getFollowUpList(), [])
self.assertEquals(len(self.portal.web_page_module.searchFolder()), 1)
web_table = self.portal.web_page_module.searchFolder()[0]
......@@ -147,7 +147,7 @@ class TestUNGSecurity(ERP5TypeTestCase):
event = self.portal.event_module.newContent(portal_type="Note")
event.setStartDate(DateTime())
event.setStopDate(DateTime()+1)
self.stepTic()
self.tic()
self.changeSkin("UNGDoc")
event_dict = json.loads(self.portal.Base_updateCalendarEventList("list"))
event_list = event_dict.get("events")
......@@ -159,7 +159,7 @@ class TestUNGSecurity(ERP5TypeTestCase):
self.portal.REQUEST.form.update(form_dict)
self.changeSkin("UNGDoc")
self.portal.Base_updateCalendarEventList("add")
self.stepTic()
self.tic()
web_message = self.portal.portal_catalog.getResultValue(portal_type="Web Message")
self.assertEquals(web_message.getTitle(), "One Sample")
self.portal.REQUEST.form.clear()
......@@ -170,7 +170,7 @@ class TestUNGSecurity(ERP5TypeTestCase):
self.portal.REQUEST.form.update(form_dict)
self.changeSkin("UNGDoc")
self.portal.Base_updateCalendarEventList("update")
self.stepTic()
self.tic()
self.assertEquals(web_message.getTitle(), "Buy Coffee")
self.portal.REQUEST.form.clear()
form_dict = dict(title=web_message.getTitle(),
......@@ -178,7 +178,7 @@ class TestUNGSecurity(ERP5TypeTestCase):
self.portal.REQUEST.form.update(form_dict)
self.changeSkin("UNGDoc")
self.portal.Base_updateCalendarEventList("remove")
self.stepTic()
self.tic()
web_message = self.portal.portal_catalog.getResultValue(portal_type="Web Message")
self.assertEquals(web_message, None)
......@@ -191,7 +191,7 @@ class TestUNGSecurity(ERP5TypeTestCase):
self.portal.REQUEST.form.update(form_dict)
self.changeSkin("UNGDoc")
self.portal.ERPSite_createUNGUser()
self.stepTic()
self.tic()
self.login("ERP5TypeTestCase")
person = self.portal.portal_catalog.getResultValue(portal_type="Person")
self.assertEquals(person.getLastName(), "My Last Name")
......@@ -204,7 +204,7 @@ class TestUNGSecurity(ERP5TypeTestCase):
assignment = person.newContent(portal_type='Assignment')
assignment.setFunction("function/ung_user")
assignment.open()
self.stepTic()
self.tic()
self.login("ung_user")
self.changeSkin("UNGDoc")
preference_dict = json.loads(self.portal.Base_getPreferencePathList())
......@@ -219,12 +219,12 @@ class TestUNGSecurity(ERP5TypeTestCase):
self.login("ung_user")
self.changeSkin("UNGDoc")
self.portal.ERP5Site_createNewWebDocument("web_page_template")
self.stepTic()
self.tic()
web_page = self.portal.portal_catalog.getResultValue(portal_type="Web Page")
self.assertEquals(web_page.getValidationState(), "draft")
self.changeSkin("UNGDoc")
response = web_page.WebPage_shareDocument()
self.stepTic()
self.tic()
self.assertEquals(response, "".join((self.portal.absolute_url(),
"/?key=",
web_page.getReference())))
......
409
\ No newline at end of file
410
\ No newline at end of file
......@@ -57,7 +57,7 @@ class ShaSecurityMixin(object):
person.edit(first_name=reference,
reference=reference,
password=password)
self.stepTic()
self.tic()
create = True
group=self.group
......@@ -69,7 +69,7 @@ class ShaSecurityMixin(object):
assignment = person.newContent(portal_type='Assignment')
assignment.edit(group=self.group)
assignment.open()
self.stepTic()
self.tic()
def changeUser(self, user_id):
"""
......
......@@ -124,7 +124,7 @@ class TestShaCacheSecurity(ShaCacheMixin, ShaSecurityMixin, SecurityTestCase):
document = module.newContent(portal_type=portal_type)
document.publishAlive()
self.stepTic()
self.tic()
self.logout()
self.assertTrue(self.portal.portal_membership.isAnonymousUser())
......@@ -149,7 +149,7 @@ class TestShaCacheSecurity(ShaCacheMixin, ShaSecurityMixin, SecurityTestCase):
document.view()
document.publishAlive()
self.stepTic()
self.tic()
self.assertEquals('Published Alive',
document.getValidationStateTitle())
......@@ -192,7 +192,7 @@ class TestShaCacheSecurity(ShaCacheMixin, ShaSecurityMixin, SecurityTestCase):
self.changeUser(self.toto_user)
document = module.newContent(portal_type=portal_type)
document.publishAlive()
self.stepTic()
self.tic()
self.changeUser(self.lucas_user)
document()
......
......@@ -105,7 +105,7 @@ class TestShaDirSecurity(ShaDirMixin, ShaSecurityMixin, SecurityTestCase):
data_set = self.portal.data_set_module.newContent(portal_type='Data Set',
reference=self.key)
data_set.publish()
self.stepTic()
self.tic()
self.logout()
self.assertTrue(self.portal.portal_membership.isAnonymousUser())
......@@ -122,13 +122,13 @@ class TestShaDirSecurity(ShaDirMixin, ShaSecurityMixin, SecurityTestCase):
data_set = self.portal.data_set_module.newContent(
portal_type='Data Set',
reference=self.key)
self.stepTic()
self.tic()
data_set()
data_set.view()
data_set.publish()
self.stepTic()
self.tic()
self.assertEquals('Published', data_set.getValidationStateTitle())
self.assertUserHaveRoleOnDocument(self.lucas_user, 'Auditor', data_set)
......@@ -155,7 +155,7 @@ class TestShaDirSecurity(ShaDirMixin, ShaSecurityMixin, SecurityTestCase):
portal_type='Data Set',
reference=self.key)
data_set.publish()
self.stepTic()
self.tic()
self.changeUser(self.lucas_user)
data_set()
......@@ -169,13 +169,13 @@ class TestShaDirSecurity(ShaDirMixin, ShaSecurityMixin, SecurityTestCase):
"""
self.changeUser(self.lucas_user)
document = self.portal.document_module.newContent(portal_type='Text')
self.stepTic()
self.tic()
document()
document.view()
document.publishAlive()
self.stepTic()
self.tic()
self.assertEquals('Published Alive', document.getValidationStateTitle())
self.assertUserHaveRoleOnDocument(self.lucas_user, 'Auditor', document)
......@@ -199,7 +199,7 @@ class TestShaDirSecurity(ShaDirMixin, ShaSecurityMixin, SecurityTestCase):
self.changeUser(self.toto_user)
document = self.portal.document_module.newContent(portal_type='Text')
document.publishAlive()
self.stepTic()
self.tic()
self.changeUser(self.lucas_user)
document()
......
27
\ No newline at end of file
28
\ No newline at end of file
......@@ -55,36 +55,45 @@ class SQLDict(SQLBase):
# Transaction commit methods
def prepareQueueMessageList(self, activity_tool, message_list):
message_list = [m for m in message_list if m.is_registered]
for i in xrange(0, len(message_list), MAX_MESSAGE_LIST_SIZE):
registered_message_list = message_list[i:i + MAX_MESSAGE_LIST_SIZE]
#LOG('SQLDict prepareQueueMessageList', 0, 'registered_message_list = %r' % (registered_message_list,))
path_list = ['/'.join(message.object_path) for message in registered_message_list]
active_process_uid_list = [message.active_process_uid for message in registered_message_list]
method_id_list = [message.method_id for message in registered_message_list]
priority_list = [message.activity_kw.get('priority', 1) for message in registered_message_list]
dumped_message_list = [self.dumpMessage(message) for message in registered_message_list]
date_list = [message.activity_kw.get('at_date', None) for message in registered_message_list]
group_method_id_list = [m.getGroupId() for m in registered_message_list]
tag_list = [message.activity_kw.get('tag', '') for message in registered_message_list]
serialization_tag_list = [message.activity_kw.get('serialization_tag', '') for message in registered_message_list]
order_validation_text_list = [self.getOrderValidationText(message) for message in registered_message_list]
registered_message_list = [m for m in message_list if m.is_registered]
for i in xrange(0, len(registered_message_list), MAX_MESSAGE_LIST_SIZE):
message_list = registered_message_list[i:i + MAX_MESSAGE_LIST_SIZE]
path_list = ['/'.join(m.object_path) for m in message_list]
active_process_uid_list = [m.active_process_uid for m in message_list]
method_id_list = [m.method_id for m in message_list]
priority_list = [m.activity_kw.get('priority', 1) for m in message_list]
date_list = [m.activity_kw.get('at_date') for m in message_list]
group_method_id_list = [m.getGroupId() for m in message_list]
tag_list = [m.activity_kw.get('tag', '') for m in message_list]
serialization_tag_list = [m.activity_kw.get('serialization_tag', '')
for m in message_list]
order_validation_text_list = []
processing_node_list = []
for m in message_list:
m.order_validation_text = x = self.getOrderValidationText(m)
# BBB: 'order_validation_text' SQL column is now useless.
# If we remove it, 'message' & 'message_queue' can have the same
# schema, and much code can be merged into SQLBase.
order_validation_text_list.append(x)
processing_node_list.append(0 if x == 'none' else -1)
dumped_message_list = map(self.dumpMessage, message_list)
# The uid_list also is store in the ZODB
uid_list = activity_tool.getPortalObject().portal_ids.\
generateNewIdList(id_generator='uid', id_group='portal_activity',
id_count=len(registered_message_list))
activity_tool.SQLDict_writeMessageList( uid_list = uid_list,
path_list = path_list,
active_process_uid_list=active_process_uid_list,
method_id_list = method_id_list,
priority_list = priority_list,
message_list = dumped_message_list,
date_list = date_list,
group_method_id_list = group_method_id_list,
tag_list = tag_list,
serialization_tag_list = serialization_tag_list,
processing_node_list=None,
order_validation_text_list = order_validation_text_list)
uid_list = activity_tool.getPortalObject().portal_ids.generateNewIdList(
id_generator='uid', id_group='portal_activity',
id_count=len(message_list))
activity_tool.SQLDict_writeMessageList(
uid_list=uid_list,
path_list=path_list,
active_process_uid_list=active_process_uid_list,
method_id_list=method_id_list,
priority_list=priority_list,
message_list=dumped_message_list,
date_list=date_list,
group_method_id_list=group_method_id_list,
tag_list=tag_list,
serialization_tag_list=serialization_tag_list,
processing_node_list=processing_node_list,
order_validation_text_list=order_validation_text_list)
def generateMessageUID(self, m):
return (tuple(m.object_path), m.method_id, m.activity_kw.get('tag'), m.activity_kw.get('group_id'))
......@@ -223,10 +232,10 @@ class SQLDict(SQLBase):
raise ActivityFlushError, (
'Could not validate %s on %s' % (m.method_id , path))
if len(result):
uid_list = activity_tool.SQLDict_readUidList(path = path, method_id = method_id,
order_validation_text=None)
if len(uid_list)>0:
if result:
uid_list = activity_tool.SQLDict_readUidList(
path=path, method_id=method_id)
if uid_list:
activity_tool.SQLBase_delMessage(table=self.sql_table,
uid=[x.uid for x in uid_list])
......@@ -258,8 +267,9 @@ class SQLDict(SQLBase):
validation_text_dict = {'none': 1}
message_dict = {}
for line in result:
message = self.loadMessage(line.message, uid=line.uid, line=line,
order_validation_text=line.order_validation_text)
message = self.loadMessage(line.message, uid=line.uid, line=line)
if not hasattr(message, 'order_validation_text'): # BBB
m.order_validation_text = line.order_validation_text
self.getExecutableMessageList(activity_tool, message, message_dict,
validation_text_dict, now_date=now_date)
......@@ -339,8 +349,9 @@ class SQLDict(SQLBase):
line=line,
uid=line.uid,
date=line.date,
processing_node=line.processing_node,
order_validation_text=line.order_validation_text)
processing_node=line.processing_node)
if not hasattr(m, 'order_validation_text'): # BBB
m.order_validation_text = line.order_validation_text
message_list.append(m)
return message_list
else:
......
......@@ -54,33 +54,39 @@ class SQLQueue(SQLBase):
merge_duplicate = False
def prepareQueueMessageList(self, activity_tool, message_list):
message_list = [m for m in message_list if m.is_registered]
for i in xrange(0, len(message_list), MAX_MESSAGE_LIST_SIZE):
registered_message_list = message_list[i:i + MAX_MESSAGE_LIST_SIZE]
registered_message_list = [m for m in message_list if m.is_registered]
for i in xrange(0, len(registered_message_list), MAX_MESSAGE_LIST_SIZE):
message_list = registered_message_list[i:i + MAX_MESSAGE_LIST_SIZE]
# The uid_list also is store in the ZODB
uid_list = activity_tool.getPortalObject().portal_ids.generateNewIdList(
id_generator='uid', id_group='portal_activity_queue',
id_count=len(registered_message_list))
path_list = ['/'.join(m.object_path) for m in registered_message_list]
active_process_uid_list = [m.active_process_uid for m in registered_message_list]
method_id_list = [m.method_id for m in registered_message_list]
priority_list = [m.activity_kw.get('priority', 1) for m in registered_message_list]
date_list = [m.activity_kw.get('at_date', None) for m in registered_message_list]
group_method_id_list = [m.getGroupId() for m in registered_message_list]
tag_list = [m.activity_kw.get('tag', '') for m in registered_message_list]
serialization_tag_list = [m.activity_kw.get('serialization_tag', '') for m in registered_message_list]
dumped_message_list = [self.dumpMessage(m) for m in registered_message_list]
activity_tool.SQLQueue_writeMessageList(uid_list=uid_list,
path_list=path_list,
active_process_uid_list=active_process_uid_list,
method_id_list=method_id_list,
priority_list=priority_list,
message_list=dumped_message_list,
group_method_id_list = group_method_id_list,
date_list=date_list,
tag_list=tag_list,
processing_node_list=None,
serialization_tag_list=serialization_tag_list)
id_generator='uid', id_group='portal_activity_queue',
id_count=len(message_list))
path_list = ['/'.join(m.object_path) for m in message_list]
active_process_uid_list = [m.active_process_uid for m in message_list]
method_id_list = [m.method_id for m in message_list]
priority_list = [m.activity_kw.get('priority', 1) for m in message_list]
date_list = [m.activity_kw.get('at_date') for m in message_list]
group_method_id_list = [m.getGroupId() for m in message_list]
tag_list = [m.activity_kw.get('tag', '') for m in message_list]
serialization_tag_list = [m.activity_kw.get('serialization_tag', '')
for m in message_list]
processing_node_list = []
for m in message_list:
m.order_validation_text = x = self.getOrderValidationText(m)
processing_node_list.append(0 if x == 'none' else -1)
dumped_message_list = map(self.dumpMessage, message_list)
activity_tool.SQLQueue_writeMessageList(
uid_list=uid_list,
path_list=path_list,
active_process_uid_list=active_process_uid_list,
method_id_list=method_id_list,
priority_list=priority_list,
message_list=dumped_message_list,
group_method_id_list=group_method_id_list,
date_list=date_list,
tag_list=tag_list,
processing_node_list=processing_node_list,
serialization_tag_list=serialization_tag_list)
def hasActivity(self, activity_tool, object, method_id=None, only_valid=None, active_process_uid=None):
hasMessage = getattr(activity_tool, 'SQLQueue_hasMessage', None)
......@@ -204,7 +210,8 @@ class SQLQueue(SQLBase):
message_dict = {}
for line in result:
message = self.loadMessage(line.message, uid=line.uid, line=line)
message.order_validation_text = self.getOrderValidationText(message)
if not hasattr(message, 'order_validation_text'): # BBB
message.order_validation_text = self.getOrderValidationText(message)
self.getExecutableMessageList(activity_tool, message, message_dict,
validation_text_dict, now_date=now_date)
if message_dict:
......@@ -261,7 +268,8 @@ class SQLQueue(SQLBase):
uid=line.uid,
date=line.date,
processing_node=line.processing_node)
m.order_validation_text = self.getOrderValidationText(m)
if not hasattr(m, 'order_validation_text'): # BBB
m.order_validation_text = self.getOrderValidationText(m)
message_list.append(m)
return message_list
else:
......
......@@ -10,7 +10,6 @@ class_file:
<params>
method_id
path
order_validation_text
</params>
SELECT uid FROM
message
......@@ -18,4 +17,3 @@ WHERE
processing = 0
<dtml-if expr="method_id is not None"> AND method_id = <dtml-sqlvar method_id type="string"> </dtml-if>
<dtml-if expr="path is not None"> AND path = <dtml-sqlvar path type="string"> </dtml-if>
<dtml-if expr="order_validation_text is not None"> AND order_validation_text = <dtml-sqlvar order_validation_text type="string"> </dtml-if>
......@@ -30,7 +30,7 @@ VALUES
<dtml-sqlvar expr="active_process_uid_list[loop_item]" type="int" optional>,
<dtml-if expr="date_list is not None"><dtml-if expr="date_list[loop_item] is not None"><dtml-sqlvar expr="date_list[loop_item]" type="datetime"><dtml-else>UTC_TIMESTAMP()</dtml-if><dtml-else>UTC_TIMESTAMP()</dtml-if>,
<dtml-sqlvar expr="method_id_list[loop_item]" type="string">,
<dtml-if expr="processing_node_list is not None"><dtml-sqlvar expr="processing_node_list[loop_item]" type="int"><dtml-else>-1</dtml-if>,
<dtml-sqlvar expr="processing_node_list[loop_item]" type="int">,
0,
<dtml-sqlvar expr="priority_list[loop_item]" type="int">,
<dtml-sqlvar expr="group_method_id_list[loop_item]" type="string">,
......
......@@ -30,7 +30,7 @@ VALUES
<dtml-sqlvar expr="active_process_uid_list[loop_item]" type="int" optional>,
<dtml-if expr="date_list is not None"><dtml-if expr="date_list[loop_item] is not None"><dtml-sqlvar expr="date_list[loop_item]" type="datetime"><dtml-else>UTC_TIMESTAMP()</dtml-if><dtml-else>UTC_TIMESTAMP()</dtml-if>,
<dtml-sqlvar expr="method_id_list[loop_item]" type="string">,
<dtml-if expr="processing_node_list is not None"><dtml-sqlvar expr="processing_node_list[loop_item]" type="int"><dtml-else>-1</dtml-if>,
<dtml-sqlvar expr="processing_node_list[loop_item]" type="int">,
0,
<dtml-sqlvar expr="priority_list[loop_item]" type="int">,
<dtml-sqlvar expr="group_method_id_list[loop_item]" type="string">,
......
......@@ -128,7 +128,7 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
organisation_module = self.getOrganisationModule()
if not(organisation_module.hasContent(self.company_id)):
o1 = organisation_module.newContent(id=self.company_id)
self.stepTic()
self.tic()
def login(self, quiet=0, run=run_all_test):
uf = self.getPortal().acl_users
......@@ -181,7 +181,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
# Needed so that the message are commited into the queue
self.commit()
self.assertEquals(self.title1,organisation.getTitle())
portal.portal_activities.distribute()
portal.portal_activities.tic()
self.assertEquals(self.title2,organisation.getTitle())
message_list = portal.portal_activities.getMessageList()
......@@ -211,7 +210,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
self.commit()
message_list = portal.portal_activities.getMessageList()
self.assertEquals(len(message_list),1)
portal.portal_activities.distribute()
portal.portal_activities.tic()
self.assertEquals(1,organisation.getFoobar())
message_list = portal.portal_activities.getMessageList()
......@@ -264,7 +262,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
organisation.activate(activity=activity).DeferredSetTitle(self.title2)
organisation.flushActivity(invoke=1)
self.commit()
portal.portal_activities.distribute()
portal.portal_activities.tic()
self.commit()
message_list = portal.portal_activities.getMessageList()
......@@ -347,9 +344,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
portal.portal_activities.distribute()
portal.portal_activities.tic()
self.commit()
portal.portal_activities.distribute()
portal.portal_activities.tic()
self.commit()
message_list = portal.portal_activities.getMessageList()
self.assertEquals(len(message_list),0)
self.assertEquals(organisation.getTitle(),self.title1)
......@@ -361,7 +355,7 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
"""
portal = self.getPortal()
def crashThisActivity(self):
self.IWillCrach()
self.IWillCrash()
organisation = portal.organisation._getOb(self.company_id)
Organisation.crashThisActivity = crashThisActivity
organisation.activate(activity=activity).crashThisActivity()
......@@ -370,7 +364,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
message_list = portal.portal_activities.getMessageList()
LOG('Before MessageWithErrorOnActivityFails, message_list',0,[x.__dict__ for x in message_list])
self.assertEquals(len(message_list),1)
portal.portal_activities.distribute()
portal.portal_activities.tic()
# XXX HERE WE SHOULD USE TIME SHIFT IN ORDER TO SIMULATE MULTIPLE TICS
# Test if there is still the message after it crashed
......@@ -396,7 +389,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
self.commit()
self.assertEquals(self.title1,organisation.getTitle())
self.assertRaises(ActivityPendingError,organisation.edit,id=self.company_id2)
portal.portal_activities.distribute()
portal.portal_activities.tic()
def TryActiveProcess(self, activity):
......@@ -413,8 +405,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
self.commit()
portal.portal_activities.distribute()
portal.portal_activities.tic()
portal.portal_activities.distribute()
portal.portal_activities.tic()
self.assertEquals(self.title1,organisation.getTitle())
result = active_process.getResultList()[0]
self.assertEquals(result.method_id , 'getTitle')
......@@ -1602,7 +1592,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
message_list = portal.portal_activities.getMessageList()
self.assertEquals(len(message_list),5)
portal.portal_activities.distribute()
portal.portal_activities.tic()
expected = dict(SQLDict=1, SQLQueue=5)[activity]
self.assertEquals(expected, organisation.getFoobar())
......@@ -1615,7 +1604,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
message_list = portal.portal_activities.getMessageList()
self.assertEquals(len(message_list),5)
portal.portal_activities.distribute()
portal.portal_activities.tic()
self.assertEquals(expected * 2, organisation.getFoobar())
......@@ -1635,7 +1623,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
message_list = portal.portal_activities.getMessageList()
self.assertEquals(len(message_list),20)
portal.portal_activities.distribute()
portal.portal_activities.tic()
self.assertEquals(dict(SQLDict=11, SQLQueue=60)[activity],
organisation.getFoobar())
......@@ -2352,29 +2339,27 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
message = '\nCheck similarities are not deleted before execution of original message (SQLDict)'
ZopeTestCase._print(message)
LOG('Testing... ',0,message)
organisation = self.getPortal().organisation_module.newContent(portal_type='Organisation')
self.tic()
activity_tool = self.getActivityTool()
check_result_dict = {}
def checkActivityCount(self, other_tag):
if len(check_result_dict) == 0:
check_result_dict['done'] = activity_tool.countMessage(tag=other_tag)
marker = []
def doSomething(self, other_tag):
marker.append(self.countMessage(tag=other_tag))
activity_tool.__class__.doSomething = doSomething
try:
Organisation.checkActivityCount = checkActivityCount
# Adds two similar but not the same activities.
organisation.activate(activity='SQLDict', tag='a').checkActivityCount(other_tag='b')
organisation.activate(activity='SQLDict', tag='b').checkActivityCount(other_tag='a')
activity_tool.activate(activity='SQLDict', after_tag='foo',
tag='a').doSomething(other_tag='b')
activity_tool.activate(activity='SQLDict', after_tag='bar',
tag='b').doSomething(other_tag='a')
self.commit()
self.assertEqual(len(activity_tool.getMessageList()), 2)
activity_tool.tic() # make sure distribution phase was not skipped
activity_tool.distribute()
# after distribute, similarities are still there.
self.assertEqual(len(activity_tool.getMessageList()), 2)
self.tic()
activity_tool.tic()
self.assertEqual(len(activity_tool.getMessageList()), 0)
self.assertEqual(len(check_result_dict), 1)
self.assertEqual(check_result_dict['done'], 1)
self.assertEqual(marker, [1])
finally:
delattr(Organisation, 'checkActivityCount')
del activity_tool.__class__.doSomething
def test_102_2_CheckSQLDictDeleteDuplicatesBeforeExecution(self, quiet=0, run=run_all_test):
"""
......@@ -2386,32 +2371,30 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
message = '\nCheck duplicates are deleted before execution of original message (SQLDict)'
ZopeTestCase._print(message)
LOG('Testing... ',0,message)
organisation = self.getPortal().organisation_module.newContent(portal_type='Organisation')
self.tic()
activity_tool = self.getActivityTool()
check_result_dict = {}
def checkActivityCount(self, other_tag):
if len(check_result_dict) == 0:
check_result_dict['done'] = activity_tool.countMessage(tag=other_tag)
marker = []
def doSomething(self, other_tag):
marker.append(self.countMessage(tag=other_tag))
activity_tool.__class__.doSomething = doSomething
try:
Organisation.checkActivityCount = checkActivityCount
# Adds two same activities.
organisation.activate(activity='SQLDict', tag='a', priority=2).checkActivityCount(other_tag='a')
activity_tool.activate(activity='SQLDict', after_tag='foo', priority=2,
tag='a').doSomething(other_tag='a')
self.commit()
uid1, = [x.uid for x in activity_tool.getMessageList()]
organisation.activate(activity='SQLDict', tag='a', priority=1).checkActivityCount(other_tag='a')
activity_tool.activate(activity='SQLDict', after_tag='bar', priority=1,
tag='a').doSomething(other_tag='a')
self.commit()
self.assertEqual(len(activity_tool.getMessageList()), 2)
activity_tool.distribute()
# After distribute, duplicate is deleted.
uid2, = [x.uid for x in activity_tool.getMessageList()]
self.assertNotEqual(uid1, uid2)
self.tic()
activity_tool.tic()
self.assertEqual(len(activity_tool.getMessageList()), 0)
self.assertEqual(len(check_result_dict), 1)
self.assertEqual(check_result_dict['done'], 1)
self.assertEqual(marker, [1])
finally:
delattr(Organisation, 'checkActivityCount')
del activity_tool.__class__.doSomething
def test_102_3_CheckSQLDictDistributeWithSerializationTagAndGroupMethodId(
self, quiet=0):
......@@ -3187,7 +3170,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
for activity in 'SQLDict', 'SQLQueue':
activity_tool.activate(activity=activity).doSomething(activity)
self.commit()
activity_tool.distribute()
# Make first commit in dequeueMessage raise
registerFailingTransactionManager()
self.assertRaises(CommitFailed, activity_tool.tic)
......@@ -3438,7 +3420,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
activity_tool.__class__.doSomething = doSomething
activity_tool.activate(activity='SQLQueue').doSomething()
self.commit()
activity_tool.distribute()
activity_tool.tic()
message_list = activity_tool.getMessageList()
self.assertEquals(['doSomething'],[x.method_id for x in message_list])
......
......@@ -27,6 +27,7 @@
#
##############################################################################
from zLOG import LOG, BLATHER
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5.mixin.builder import BuilderMixin, SelectMethodError
......@@ -106,38 +107,24 @@ class SimulatedDeliveryBuilder(BuilderMixin):
First, select movement matching to criteria define on Delivery Builder
Then, call script simulation_select_method to restrict movement_list
"""
movement_list = []
# We only search Simulation Movement
kw['portal_type'] = 'Simulation Movement'
# Search only child movement from this applied rule
if applied_rule_uid is not None:
if applied_rule_uid:
kw['parent_uid'] = applied_rule_uid
# XXX Add profile query
# Add resource query
if self.getResourcePortalType() not in ('', None):
kw['resourceType'] = self.getResourcePortalType()
if self.getSimulationSelectMethodId() in ['', None]:
movement_list = [x.getObject() for x in self.portal_catalog(**kw)]
else:
select_method = getattr(self.getPortalObject(), self.getSimulationSelectMethodId())
movement_list = select_method(**kw)
# XXX Use buildSQLQuery will be better
movement_list = [x for x in movement_list if \
x.getDeliveryValueList()==[] and x.isBuildable()]
portal_type = self.getResourcePortalType()
if portal_type:
kw['resource_portal_type'] = portal_type
movement_list = []
for movement in self._searchMovementList(
portal_type='Simulation Movement', **kw):
if movement.getDelivery():
LOG("searchMovementList", BLATHER,
"ignore already built simulation movement %r"
% movement.getRelativeUrl())
elif movement.isBuildable():
movement_list.append(movement)
# XXX Add predicate test
# XXX FIXME Check that there is no double in the list
# Because we can't trust simulation_select_method
# Example: simulation_select_method is not tested enough
mvt_dict = {}
for movement in movement_list:
if mvt_dict.has_key(movement):
raise SelectMethodError, \
"%s return %s twice (or more)" % \
(str(self.getSimulationSelectMethodId()),
str(movement.getRelativeUrl()))
else:
mvt_dict[movement] = 1
# Return result
return movement_list
def _setDeliveryMovementProperties(self, delivery_movement,
......
......@@ -59,7 +59,9 @@ predicate_property_dict</string> </value>
<dtml-let predicate_list="[]">\n
<dtml-in prefix="loop" expr="_.range(_.len(uid))">\n
<dtml-if "isPredicate[loop_item]">\n
<dtml-call expr="predicate_list.append(loop_item)">\n
<dtml-if expr="_.len(predicate_property_dict[loop_item]) > 0">\n
<dtml-call expr="predicate_list.append(loop_item)">\n
</dtml-if>\n
</dtml-if>\n
</dtml-in>\n
<dtml-if expr="_.len(predicate_list) > 0">\n
......
221
\ No newline at end of file
224
\ No newline at end of file
......@@ -39,8 +39,6 @@ from Products.ERP5.ExplanationCache import _getExplanationCache
from DateTime import DateTime
from Acquisition import aq_parent, aq_inner
from zLOG import LOG
class CollectError(Exception): pass
class MatrixError(Exception): pass
class DuplicatedPropertyDictKeysError(Exception): pass
......@@ -169,6 +167,7 @@ class BuilderMixin(XMLObject, Amount, Predicate):
getattr(delivery_module, delivery_module_before_building_script_id)()
def generateMovementListForStockOptimisation(self, **kw):
# XXX: unused
from Products.ERP5Type.Document import newTempMovement
movement_list = []
for attribute, method in [('node_uid', 'getDestinationUid'),
......@@ -230,36 +229,30 @@ class BuilderMixin(XMLObject, Amount, Predicate):
movement_list.append(movement)
return movement_list
@UnrestrictedMethod
def searchMovementList(self, applied_rule_uid=None, **kw):
def _searchMovementList(self, **kw):
"""
Returns a list of simulation movements (or something similar to
simulation movements) to construct a new delivery.
For compatibility, if a simulation select method id is not provided,
a list of movements for predicting future supplies is returned.
You should define a simulation select method id, then it will be used
to calculate the result.
"""
method_id = self.getSimulationSelectMethodId()
if not method_id:
# XXX compatibility
return self.generateMovementListForStockOptimisation(**kw)
select_method = getattr(self.getPortalObject(), method_id)
movement_list = select_method(**kw)
# Make sure that movements are not duplicated.
if method_id:
select_method = getattr(self.getPortalObject(), method_id)
else:
select_method = self.getPortalObject().portal_catalog
movement_list = [] # use list to preserve order
movement_set = set()
for movement in movement_list:
for movement in select_method(**kw):
movement = movement.getObject()
if movement in movement_set:
raise SelectMethodError('%s returned %s twice or more' % \
(method_id, movement.getRelativeUrl()))
else:
movement_set.add(movement)
movement_set.add(movement)
movement_list.append(movement)
return movement_list
searchMovementList = UnrestrictedMethod(_searchMovementList)
def collectMovement(self, movement_list):
"""
group movements in the way we want. Thanks to this method, we are able
......
......@@ -232,7 +232,7 @@ class TestApparelTransformation(TestOrderMixin, ERP5TypeTestCase):
membership_criterion_base_category = base_category_list,
membership_criterion_category = [size],
categories = ('variation/' + variation.getRelativeUrl() ) )
self.stepTic()
self.tic()
# Transformed Resource 3 : 3 variation axis
line_list = [ ('size/Baby', 'ColourVariation1', 'MorphologyVariation1', '2', 3.),
......@@ -313,7 +313,7 @@ class TestApparelTransformation(TestOrderMixin, ERP5TypeTestCase):
membership_criterion_category = [size, colour, morphology],
quantity = quantity,
mapped_value_property_list = ['quantity'] )
self.stepTic()
self.tic()
def stepCreateIncludedTransformationLine(self, sequence=None, sequence_list=None, **kw):
......@@ -359,7 +359,7 @@ class TestApparelTransformation(TestOrderMixin, ERP5TypeTestCase):
membership_criterion_category = [size],
quantity = quantity,
mapped_value_property_list = ['quantity'])
self.stepTic()
self.tic()
# Transformed Resource : 1 variation axis
line_list = [ ('size/Baby', 1.),
......@@ -388,7 +388,7 @@ class TestApparelTransformation(TestOrderMixin, ERP5TypeTestCase):
membership_criterion_category = [size],
quantity = quantity,
mapped_value_property_list = ['quantity'])
self.stepTic()
self.tic()
def stepIncludeTransformation(self, sequence=None, sequence_list=None, **kw):
......
......@@ -63,7 +63,7 @@ class TestAuoLogout(ERP5TypeTestCase):
# setup short auto-logout period
portal.portal_preferences.default_site_preference.setPreferredMaxUserInactivityDuration(5)
portal.portal_preferences.default_site_preference.enable()
self.stepTic()
self.tic()
def test_01_AutoLogout(self):
"""
......@@ -86,7 +86,7 @@ class TestAuoLogout(ERP5TypeTestCase):
# if we disable auto-logout then cookie will expire at end of session
portal.portal_preferences.default_site_preference.disable()
self.stepTic()
self.tic()
portal.portal_caches.clearAllCache()
response = self.publish(path)
......
......@@ -214,7 +214,7 @@ class TestBPMMixin(ERP5TypeTestCase):
self.validateRules()
self.createCategories()
self.createAndValidateAccounts()
self.stepTic()
self.tic()
class TestBPMDummyDeliveryMovementMixin(TestBPMMixin):
def _createDelivery(self, **kw):
......@@ -234,12 +234,12 @@ class TestBPMDummyDeliveryMovementMixin(TestBPMMixin):
self.portal.newContent(portal_type='Folder',
id='testing_folder')
self.folder = self.portal.testing_folder
self.stepTic()
self.tic()
def beforeTearDown(self):
super(TestBPMDummyDeliveryMovementMixin, self).beforeTearDown()
self.portal.deleteContent(id='testing_folder')
self.stepTic()
self.tic()
completed_state = 'delivered'
frozen_state = 'confirmed'
......@@ -273,7 +273,7 @@ class TestBPMDummyDeliveryMovementMixin(TestBPMMixin):
self.invoice_link = self.createBusinessLink(business_process,
predecessor_value = delivered, successor_value = invoiced,
trade_phase='default/invoicing')
self.stepTic()
self.tic()
def constructSimulationTreeAndDeliveries(self, simulation_depth=None,
dummy_split=False):
......@@ -343,7 +343,7 @@ class TestBPMDummyDeliveryMovementMixin(TestBPMMixin):
constructSimulationTree(self.applied_rule)
if dummy_split:
constructSimulationTree(self.applied_rule, prefix='split')
self.stepTic()
self.tic()
class TestBPMImplementation(TestBPMDummyDeliveryMovementMixin):
"""Business Process implementation tests"""
......@@ -362,7 +362,7 @@ class TestBPMImplementation(TestBPMDummyDeliveryMovementMixin):
portal_type=self.business_link_portal_type,
trade_phase=('default/accounting', 'default/delivery'))
self.stepTic()
self.tic()
self.assertSameSet(
(accounting_business_link, accounting_delivery_business_link),
......@@ -542,7 +542,7 @@ class TestBPMImplementation(TestBPMDummyDeliveryMovementMixin):
self.constructSimulationTreeAndDeliveries(dummy_split=True)
self.order.setSimulationState(self.completed_state)
self.stepTic()
self.tic()
def checkIsBusinessLinkBuildable(explanation, business_link, value):
self.assertEquals(self.business_process.isBusinessLinkBuildable(
......@@ -565,7 +565,7 @@ class TestBPMImplementation(TestBPMDummyDeliveryMovementMixin):
# relate not split movement with delivery (deliver it)
self.delivery_simulation_movement.edit(delivery_value = delivery_line)
self.stepTic()
self.tic()
# delivery_link (for order) is still buildable, as split movement is not
# delivered yet
......@@ -592,7 +592,7 @@ class TestBPMImplementation(TestBPMDummyDeliveryMovementMixin):
self.assertEqual(self.completed_state, delivery.getSimulationState())
self.stepTic()
self.tic()
# delivery_link (for order) is still buildable, as split movement is not
# delivered yet
......@@ -633,7 +633,7 @@ class TestBPMImplementation(TestBPMDummyDeliveryMovementMixin):
# relate not split movement with delivery (deliver it)
self.delivery_simulation_movement.edit(delivery_value = delivery_line)
self.stepTic()
self.tic()
# nothing changes
self.assertEqual(self.delivery_link.isCompleted(self.order), False)
......@@ -656,7 +656,7 @@ class TestBPMImplementation(TestBPMDummyDeliveryMovementMixin):
self.assertEqual(self.completed_state, delivery.getSimulationState())
self.stepTic()
self.tic()
self.assertEqual(self.delivery_link.isCompleted(self.order), False)
self.assertEqual(self.delivery_link.isPartiallyCompleted(self.order), True)
......@@ -676,7 +676,7 @@ class TestBPMImplementation(TestBPMDummyDeliveryMovementMixin):
self.split_delivery_simulation_movement.edit(
delivery_value=another_delivery_line)
another_delivery.setSimulationState(self.completed_state)
self.stepTic()
self.tic()
self.assertEqual(self.delivery_link.isCompleted(self.order), True)
self.assertEqual(self.delivery_link.isPartiallyCompleted(self.order), True)
......@@ -693,7 +693,7 @@ class TestBPMImplementation(TestBPMDummyDeliveryMovementMixin):
self.assertEqual(self.split_simulation_movement.isFrozen(), False)
self.order.setSimulationState(self.completed_state)
self.stepTic()
self.tic()
self.assertEqual(self.order_link.isFrozen(self.order), True)
self.assertEqual(self.delivery_link.isFrozen(self.order), False)
......@@ -709,7 +709,7 @@ class TestBPMImplementation(TestBPMDummyDeliveryMovementMixin):
# relate not split movement with delivery (deliver it)
self.delivery_simulation_movement.edit(delivery_value = delivery_line)
self.stepTic()
self.tic()
# nothing changes
self.assertEqual(self.delivery_link.isFrozen(self.order), False)
......@@ -731,7 +731,7 @@ class TestBPMImplementation(TestBPMDummyDeliveryMovementMixin):
self.assertEqual(self.frozen_state, delivery.getSimulationState())
self.stepTic()
self.tic()
self.assertEqual(self.delivery_link.isFrozen(self.order), False)
self.assertEqual(self.invoice_link.isFrozen(self.order), False)
......
......@@ -1178,7 +1178,7 @@ class TestBase(ERP5TypeTestCase, ZopeTestCase.Functional):
self.assertEqual(pers.getDummyTypeBaseMethod(), pers.getId())
pers.activate().Person_getDummyTypeBaseMethodByActivity()
self.stepTic()
self.tic()
def test_translate_table(self):
"""check if Person portal type that is installed in erp5_base is
......
......@@ -6260,13 +6260,13 @@ class TestBusinessTemplate(BusinessTemplateMixin):
'Dummy Type | source',),
template_action_path_list=(
'Dummy Type | view',),)
self.stepTic()
self.tic()
bt.build()
self.stepTic()
self.tic()
export_dir = tempfile.mkdtemp()
try:
bt.export(path=export_dir, local=True)
self.stepTic()
self.tic()
# portal type template item are exported in their physical location
for template_item in ('PortalTypeTemplateItem',
'ActionTemplateItem',):
......@@ -6284,7 +6284,7 @@ class TestBusinessTemplate(BusinessTemplateMixin):
types_tool.type_provider_list = registered_type_provider_list
# uninstall the type provider (this will also uninstall the contained types)
self.portal.manage_delObjects(['dummy_type_provider'])
self.stepTic()
self.tic()
new_bt.install()
try:
......@@ -6344,13 +6344,13 @@ class TestBusinessTemplate(BusinessTemplateMixin):
portal_type='Business Template',
title='test_bt',
template_tool_id_list=('dummy_type_provider', ),)
self.stepTic()
self.tic()
bt.build()
self.stepTic()
self.tic()
export_dir = tempfile.mkdtemp()
try:
bt.export(path=export_dir, local=True)
self.stepTic()
self.tic()
new_bt = self.portal.portal_templates.download(
url='file:/%s' % export_dir)
finally:
......@@ -6360,7 +6360,7 @@ class TestBusinessTemplate(BusinessTemplateMixin):
types_tool.type_provider_list = registered_type_provider_list
# uninstall the type provider (this will also uninstall the contained types)
self.portal.manage_delObjects(['dummy_type_provider'])
self.stepTic()
self.tic()
new_bt.install()
......@@ -6376,13 +6376,13 @@ class TestBusinessTemplate(BusinessTemplateMixin):
bt = self.portal.portal_templates.newContent(
portal_type='Business Template',
title='test_bt',)
self.stepTic()
self.tic()
bt.build()
self.stepTic()
self.tic()
export_dir = tempfile.mkdtemp()
try:
bt.export(path=export_dir, local=True)
self.stepTic()
self.tic()
new_bt = self.portal.portal_templates.download(
url='file:/%s' % export_dir)
finally:
......@@ -6408,13 +6408,13 @@ class TestBusinessTemplate(BusinessTemplateMixin):
title='test_bt',
template_action_path_list=(
'portal_actions | test_global_action',),)
self.stepTic()
self.tic()
bt.build()
self.stepTic()
self.tic()
export_dir = tempfile.mkdtemp()
try:
bt.export(path=export_dir, local=True)
self.stepTic()
self.tic()
# actions are exported in portal_types/ and then the id of the container
# tool
self.assertEquals(['portal_actions'],
......@@ -6427,12 +6427,12 @@ class TestBusinessTemplate(BusinessTemplateMixin):
# manually uninstall the action
self.portal.portal_actions.deleteActions(selections=[action_idx])
self.stepTic()
self.tic()
# install the business template and make sure the action is properly
# installed
new_bt.install()
self.stepTic()
self.tic()
self.assertNotEquals(None,
self.portal.portal_actions.getActionInfo('object_view/test_global_action'))
......@@ -6446,7 +6446,7 @@ class TestBusinessTemplate(BusinessTemplateMixin):
id='exported_path',
title='Exported',
portal_type='Folder')
self.stepTic()
self.tic()
uid = self.portal.exported_path.getUid()
......@@ -6455,13 +6455,13 @@ class TestBusinessTemplate(BusinessTemplateMixin):
title='test_bt',
template_path_list=(
'exported_path',))
self.stepTic()
self.tic()
bt.build()
self.stepTic()
self.tic()
export_dir = tempfile.mkdtemp()
try:
bt.export(path=export_dir, local=True)
self.stepTic()
self.tic()
new_bt = self.portal.portal_templates.download(
url='file:/%s' % export_dir)
finally:
......@@ -6469,7 +6469,7 @@ class TestBusinessTemplate(BusinessTemplateMixin):
# modify the document
self.portal.exported_path.setTitle('Modified')
self.stepTic()
self.tic()
# install the business template
new_bt.install()
......@@ -6480,7 +6480,7 @@ class TestBusinessTemplate(BusinessTemplateMixin):
# but its uid did not change
self.assertEquals(uid, self.portal.exported_path.getUid())
# and it is still in the catalog
self.stepTic()
self.tic()
self.assertEquals(self.portal.exported_path,
self.portal.portal_catalog.getResultValue(uid=uid))
......
......@@ -73,7 +73,7 @@ class BaseTestCRM(ERP5TypeTestCase):
for module_name in clear_module_name_list:
module = self.portal.unrestrictedTraverse(module_name)
module.manage_delObjects(list(module.objectIds()))
self.stepTic()
self.tic()
super(BaseTestCRM, self).beforeTearDown()
class TestCRM(BaseTestCRM):
......@@ -361,7 +361,7 @@ class TestCRM(BaseTestCRM):
module = self.portal.support_request_module
support_request = module.newContent(portal_type=portal_type,
title=title,)
self.stepTic()
self.tic()
self.assertNotEquals(None, support_request.getReference())
......@@ -373,7 +373,6 @@ class TestCRM(BaseTestCRM):
new_support_request.getReference())
@expectedFailure
def test_Event_getResourceItemList(self):
"""Event_getResourceItemList returns
category item list with base category in path, just
......@@ -978,7 +977,6 @@ class TestCRMMailSend(BaseTestCRM):
self.assertNotEqual(part, None)
self.assertEqual('<html><body>%s</body></html>' % text_content, part.get_payload(decode=True))
@expectedFailure
def test_MailMessageHTMLbis(self):
# test sending a mail message edited as HTML (the default with FCKEditor),
# then the mail should have HTML
......@@ -1437,7 +1435,7 @@ class TestCRMMailSend(BaseTestCRM):
self.assertEquals(event.getTitle(), real_title)
self.assertEquals(event.getTextContent(), real_content)
self.stepTic()
self.tic()
new_event = event.Base_createCloneDocument(batch_mode=1)
self.assertFalse(new_event.hasFile(), '%r has a file' % (new_event,))
self.assertEquals(new_event.getData(), '')
......@@ -1467,11 +1465,11 @@ class TestCRMMailSend(BaseTestCRM):
follow_up = campaing.getRelativeUrl())
event.setDestinationList([x.getRelativeUrl() for x in destination_list])
event_list.append(event)
self.stepTic()
self.tic()
# use Ticket_cloneTicketAndEventList
campaing.Ticket_cloneTicketAndEventList()
self.stepTic()
self.tic()
cloned_campaign = [x for x in portal.campaign_module.objectValues() if x!=campaing][0]
cloned_event_list = [x for x in portal.event_module.objectValues() if x.getFollowUpValue()==cloned_campaign]
self.assertEqual(campaing.getTitle(), cloned_campaign.getTitle())
......@@ -1624,7 +1622,7 @@ class TestCRMMailSend(BaseTestCRM):
"""
person = self.portal.person_module.newContent(portal_type="Person")
person.edit(default_email_text="test@test.com", title="test%s" % person.getId())
self.stepTic()
self.tic()
mail_message = self.portal.event_module.newContent(portal_type="Mail Message")
relative_url_list = [z.getRelativeUrl() for z in self.portal.person_module.searchFolder()]
mail_message.setDestinationList(relative_url_list)
......@@ -1632,7 +1630,7 @@ class TestCRMMailSend(BaseTestCRM):
mail_text_content = "Body Text Content"
mail_message.setTextContent(mail_text_content)
self.portal.portal_workflow.doActionFor(mail_message, "start_action")
self.stepTic()
self.tic()
mail_message.Event_send(packet_size=2)
self.commit()
portal_activities = self.portal.portal_activities
......@@ -1641,7 +1639,7 @@ class TestCRMMailSend(BaseTestCRM):
try:
self.assertEquals(2, len(message_list))
finally:
self.stepTic()
self.tic()
last_message = self.portal.MailHost._last_message
self.assertTrue(mail_text_content in last_message[-1])
message = message_from_string(last_message[-1])
......@@ -1654,13 +1652,13 @@ class TestCRMMailSend(BaseTestCRM):
from_url, to_url, reply_url, subject, body, attachment_format, attachment_list
"""
mail_message = self.portal.event_module.newContent(portal_type="Mail Message")
self.stepTic()
self.tic()
mail_message.Event_send(from_url='FG ER <eee@eee.com>',
to_url='Expert User <expert@in24.test>',
subject="Simple Case",
body="Body Simple Case",
attachment_list=[])
self.stepTic()
self.tic()
last_message = self.portal.MailHost._last_message[-1]
self.assertTrue("Body Simple Case" in last_message)
......
......@@ -52,7 +52,7 @@ class TestCertificateAuthority(ERP5TypeTestCase):
person = self.portal.person_module.newContent(portal_type='Person',
reference=login, password=login)
person.newContent(portal_type='Assignment').open()
self.stepTic()
self.tic()
return login
def test_person_request_certificate(self):
......
......@@ -152,7 +152,7 @@ class TestComplexTradeModelLineUseCase(TestTradeModelLineMixin):
destination_decision_value=client_1,
price_currency_value=jpy)
self.stepTic()
self.tic()
def test_usecase1(self):
"""
......
......@@ -83,10 +83,10 @@ class TestERP5Administration(InventoryAPITestCase):
person.title = 3
# tic right now to make sure the person is indexed, indeed the alarm
# could use catalog to retrieve objects to check
self.stepTic()
self.tic()
alarm.activeSense()
self.stepTic()
self.tic()
# some errors were detected
self.assertTrue(alarm.sense())
......
......@@ -248,7 +248,7 @@ class TestERP5Credential(ERP5TypeTestCase):
preference.edit(preferred_credential_request_automatic_approval=True,
preferred_credential_alarm_automatic_call=automatic_call)
self._enablePreference()
self.stepTic()
self.tic()
self.logout()
def stepSetCredentialAssignmentPropertyList(self, sequence={}):
......@@ -258,7 +258,7 @@ class TestERP5Credential(ERP5TypeTestCase):
preference = self._getPreference()
preference.edit(preferred_subscription_assignment_category_list=category_list)
self._enablePreference()
self.stepTic()
self.tic()
self.logout()
def stepSetOrganisationCredentialUpdateAutomaticApprovalPreferences(self,
......@@ -297,11 +297,11 @@ class TestERP5Credential(ERP5TypeTestCase):
portal_type="Credential Request", reference=reference)
mail_message = portal_catalog.getResultValue(portal_type="Mail Message",
follow_up=credential_request)
self.stepTic()
self.tic()
self.logout()
self.portal.ERP5Site_activeLogin(mail_message.getReference())
self.login("ERP5TypeTestCase")
self.stepTic()
self.tic()
person = portal_catalog.getResultValue(reference=reference,
portal_type="Person")
assignment_list = person.objectValues(portal_type="Assignment")
......@@ -661,7 +661,7 @@ class TestERP5Credential(ERP5TypeTestCase):
)
message_str = "You%20didn%27t%20enter%20the%20correct%20answer."
self.assertTrue(message_str not in result)
self.stepTic()
self.tic()
self.login()
result_list = self.portal.portal_catalog(
portal_type='Credential Recovery', reference=person_reference)
......@@ -805,7 +805,7 @@ class TestERP5Credential(ERP5TypeTestCase):
default_address_zip_code="28024030",
**kw)
self.login("ERP5TypeTestCase")
self.stepTic()
self.tic()
return result
def stepCreateCredentialRequestSample(self, sequence=None,
......@@ -1084,7 +1084,7 @@ class TestERP5Credential(ERP5TypeTestCase):
sequence = dict(automatic_call=False)
self.stepSetCredentialRequestAutomaticApprovalPreferences(sequence)
self.stepSetCredentialAssignmentPropertyList()
self.stepTic()
self.tic()
self._createCredentialRequest()
portal_catalog = self.portal.portal_catalog
credential_request = portal_catalog.getResultValue(
......@@ -1094,7 +1094,7 @@ class TestERP5Credential(ERP5TypeTestCase):
self.logout()
self.portal.ERP5Site_activeLogin(mail_message.getReference())
self.login("ERP5TypeTestCase")
self.stepTic()
self.tic()
person = portal_catalog.getResultValue(reference="barney",
portal_type="Person")
assignment_list = person.objectValues(portal_type="Assignment")
......
......@@ -87,14 +87,14 @@ class TestERP5Discussion(ERP5TypeTestCase):
"""Create a new discussion thread"""
self.stepCreateThread();
self.stepTic()
self.tic()
def test_02_createDiscussionPost(self):
"""Create a disucssion post inside a discussion thread"""
thread = self.stepCreateThread();
post = self.stepCreatePost(thread);
self.stepTic()
self.tic()
def test_MultipleForum(self):
"""
......@@ -114,12 +114,12 @@ class TestERP5Discussion(ERP5TypeTestCase):
web_section1.setMembershipCriterionCategoryList([group1.getRelativeUrl()])
web_section2.setMultimembershipCriterionBaseCategoryList(['group'])
web_section2.setMembershipCriterionCategoryList([group2.getRelativeUrl()])
self.stepTic()
self.tic()
# add threads on Web Section context
web_section1.WebSection_createNewDiscussionThread('test1', 'test1 body')
web_section2.WebSection_createNewDiscussionThread('test2', 'test2 body')
self.stepTic()
self.tic()
discussion_thread_object1 = portal.portal_catalog.getResultValue(portal_type = 'Discussion Thread',
title = 'test1')
discussion_thread_object2 = portal.portal_catalog.getResultValue(portal_type = 'Discussion Thread',
......@@ -132,7 +132,7 @@ class TestERP5Discussion(ERP5TypeTestCase):
self.assertSameSet([], web_section2.getDocumentValueList())
discussion_thread_object1.publish()
discussion_thread_object2.publish()
self.stepTic()
self.tic()
self.assertSameSet([discussion_thread_object1], [x.getObject() for x in web_section1.getDocumentValueList()])
self.assertSameSet([discussion_thread_object2], [x.getObject() for x in web_section2.getDocumentValueList()])
......
This diff is collapsed.
......@@ -68,7 +68,7 @@ class TestExternalAccount(ERP5TypeTestCase):
title = 'External Account',
preferred_managed_external_domain_name_list = ['erp5.org'])
preference.enable()
self.stepTic()
self.tic()
def test_01_PersonExternalEmailAccountCreation(self):
......@@ -83,7 +83,7 @@ class TestExternalAccount(ERP5TypeTestCase):
career = person.newContent(portal_type = 'Career',
title = 'Career 0')
career.start()
self.stepTic()
self.tic()
self.assertEqual(1, len(portal.external_account_module.objectValues()))
self.assertEqual(person, portal.external_account_module.objectValues()[0].getSourceValue())
self.assertEqual(person.Person_getDefaultExternalEmailText(), \
......@@ -93,7 +93,7 @@ class TestExternalAccount(ERP5TypeTestCase):
# invalidate career should invalidate account
career.stop()
self.stepTic()
self.tic()
self.assertEqual(1, len(portal.external_account_module.objectValues()))
self.assertEqual(person, portal.external_account_module.objectValues()[0].getSourceValue())
self.assertEqual(person.Person_getDefaultExternalEmailText(), \
......@@ -105,11 +105,11 @@ class TestExternalAccount(ERP5TypeTestCase):
career = person.newContent(portal_type = 'Career',
title = 'Career 1')
career.start()
self.stepTic()
self.tic()
career = person.newContent(portal_type = 'Career',
title = 'Career 2')
career.start()
self.stepTic()
self.tic()
self.assertEqual(1, len(portal.external_account_module.objectValues()))
self.assertEqual(person, portal.external_account_module.objectValues()[0].getSourceValue())
......@@ -127,7 +127,7 @@ class TestExternalAccount(ERP5TypeTestCase):
career = person.newContent(portal_type = 'Career',
title = 'Career 0')
career.start()
self.stepTic()
self.tic()
self.assertEqual(1, len(portal.external_account_module.objectValues()))
self.assertFalse(person in [x.getSourceValue() for x in portal.external_account_module.objectValues()])
......
......@@ -610,7 +610,7 @@ class TestInventory(TestOrderMixin, ERP5TypeTestCase):
bc = category_tool.newContent(portal_type = 'Base Category', id = 'testing_category')
self.createCategory(bc, ['a', ['aa', 'ab'], 'o', 'z', ['za', 'zb', ['zba', 'zbb'], 'zc'] ])
self.stepTic()
self.tic()
category_org_list = [ ['testing_category/a/aa', 'testing_category/o'], # 0
['testing_category/a/aa', 'testing_category/z'], # 1
......
......@@ -292,7 +292,7 @@ class TestInventory(InventoryAPITestCase):
sim_mvt.setDeliveryValue(mvt)
self.failIf(sim_mvt.isAccountable())
# not accountable movement are not counted by getInventory
self.commit(); self.tic() # (after reindexing of course)
self.tic() # (after reindexing of course)
self.assertInventoryEquals(100, section_uid=self.section.getUid())
def test_OmitSimulation(self):
......
......@@ -2401,7 +2401,7 @@ self.portal.getDefaultModule(self.packing_list_portal_type).newContent(
invoice = self.portal.getDefaultModule(self.invoice_portal_type
).newContent(portal_type=self.invoice_portal_type,
created_by_builder=1)
self.stepTic()
self.tic()
invoice_line = invoice.newContent(
portal_type=self.invoice_line_portal_type)
invoice_cell = invoice_line.newContent(
......
This diff is collapsed.
......@@ -267,7 +267,7 @@ class TestMRPImplementation(TestMRPMixin):
# don't need another rules, just need TransformationRule for test
self.invalidateRules()
self.stepTic()
self.tic()
# alter simulations of the order
# root
......@@ -331,7 +331,7 @@ class TestMRPImplementation(TestMRPMixin):
# don't need another rules, just need TransformationRule for test
self.invalidateRules()
self.stepTic()
self.tic()
# alter simulations of the order
# root
......@@ -376,7 +376,7 @@ class TestMRPImplementation(TestMRPMixin):
"""
self.test_TransformationRule_expand_concurrent()
self.stepTic()
self.tic()
applied_rule = self.portal.portal_simulation.objectValues()[0]
......@@ -443,7 +443,7 @@ class TestMRPImplementation(TestMRPMixin):
# don't need another rules, just need TransformationSourcingRule for test
self.invalidateRules()
self.stepTic()
self.tic()
business_process = order.getSpecialiseValue()
......@@ -479,7 +479,7 @@ class TestMRPImplementation(TestMRPMixin):
resource=sourcing_resource,
)
self.stepTic()
self.tic()
# test mock
applied_rule = movement.newContent(potal_type='Applied Rule')
......
......@@ -507,7 +507,7 @@ class TestNotificationToolWithCRM(TestNotificationTool):
person = self.portal.person_module.newContent(
portal_type="Person",
default_email_text="userA@example.invalid")
self.stepTic()
self.tic()
self.portal.portal_notifications.sendMessage(
store_as_event=True,
recipient=person,
......
......@@ -25,8 +25,9 @@
#
##############################################################################
import unittest
from time import tzname
from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
from Products.ERP5Type.tests.backportUnittest import expectedFailure
from Products.ERP5Type.tests.backportUnittest import expectedFailure, skip
from DateTime import DateTime
......@@ -231,7 +232,8 @@ class TestOpenOrder(ERP5TypeTestCase):
(D(2008,3,3,10,0), D(2008,3,4,10,0)),
])
testPeriodicityDateList = expectedFailure(_testPeriodicityDateList)
testPeriodicityDateList = (skip("can't run if machine timezone is UTC")
if "UTC" in tzname else expectedFailure)(_testPeriodicityDateList)
def testPeriodicityDateListUniversal(self):
self._testPeriodicityDateList('Universal')
......
......@@ -590,7 +590,7 @@ class TestOrderMixin(SubcontentReindexingWrapper):
"""
# order_line needs to be indexed for 'fast' calculation to work as expected
self.stepTic()
self.tic()
order_line = sequence.get('order_line')
base_id = 'movement'
......@@ -616,7 +616,7 @@ class TestOrderMixin(SubcontentReindexingWrapper):
"""
# order_line needs to be indexed for 'fast' calculation to work as expected
self.stepTic()
self.tic()
order_line = sequence.get('order_line')
base_id = 'movement'
......@@ -663,7 +663,7 @@ class TestOrderMixin(SubcontentReindexingWrapper):
self.assertEquals(0, order_line.getTotalPrice(fast=1))
self.assertEquals(0, order_line.getTotalQuantity(fast=1))
self.assertNotEquals(total_price, 0)
self.stepTic()
self.tic()
self.assertEquals(len(portal_catalog(relative_url=
order_line.getRelativeUrl())),1)
self.assertEquals(total_price, order_line.getTotalPrice(fast=1))
......@@ -678,7 +678,7 @@ class TestOrderMixin(SubcontentReindexingWrapper):
"""
# order needs to be indexed for 'fast' calculation to work as expected
self.stepTic()
self.tic()
order = sequence.get('order')
order_line_list = order.objectValues( \
......@@ -698,7 +698,7 @@ class TestOrderMixin(SubcontentReindexingWrapper):
"""
# order needs to be indexed for 'fast' calculation to work as expected
self.stepTic()
self.tic()
order = sequence.get('order')
order_line_list = order.objectValues( \
......@@ -731,7 +731,7 @@ class TestOrderMixin(SubcontentReindexingWrapper):
self.assertEquals(total_price, order.getTotalPrice(fast=0))
self.assertNotEquals(total_price, 0)
self.assertEquals(0, order.getTotalPrice(fast=1))
self.stepTic()
self.tic()
self.assertEquals(1, len(portal_catalog(relative_url=order.getRelativeUrl())))
self.assertEquals(total_price, order.getTotalPrice(fast=1))
self.assertEquals(total_price, order.getTotalPrice(fast=0))
......
......@@ -1538,7 +1538,7 @@ class TestPayrollMixin(TestTradeModelLineMixin, ERP5ReportTestCase):
stop_date=DateTime(2009, 1, 31),
price_currency_value=eur)
paysheet.PaySheetTransaction_applyModel()
self.stepTic()
self.tic()
portal_type_list = ['Pay Sheet Model Line',]
......@@ -1549,7 +1549,7 @@ class TestPayrollMixin(TestTradeModelLineMixin, ERP5ReportTestCase):
portal_type='Pay Sheet Line')), 0)
# calculate the pay sheet
paysheet.applyTransformation()
self.stepTic()
self.tic()
self.assertEquals(len(paysheet.contentValues(
portal_type='Pay Sheet Line')), 1)
# check values on the paysheet
......@@ -1579,14 +1579,14 @@ class TestPayrollMixin(TestTradeModelLineMixin, ERP5ReportTestCase):
'base_amount/payroll/report/salary/gross'],
price=0.01,
quantity=10000.0)
self.stepTic()
self.tic()
# create a paysheet without date
paysheet_without_date = self.createPaysheet()
paysheet_without_date.edit(specialise_value=model_without_date,
price_currency_value=eur)
paysheet_without_date.PaySheetTransaction_applyModel()
self.stepTic()
self.tic()
portal_type_list = ['Pay Sheet Model Line',]
......@@ -1595,7 +1595,7 @@ class TestPayrollMixin(TestTradeModelLineMixin, ERP5ReportTestCase):
portal_type='Pay Sheet Line')), 0)
# calculate the pay sheet
paysheet_without_date.applyTransformation()
self.stepTic()
self.tic()
self.assertEquals(len(paysheet_without_date.contentValues(\
portal_type='Pay Sheet Line')), 1)
# check values on the paysheet_without_date
......@@ -1610,7 +1610,7 @@ class TestPayrollMixin(TestTradeModelLineMixin, ERP5ReportTestCase):
stop_date=DateTime(2009, 1, 31),
price_currency_value=eur)
paysheet_with_date.PaySheetTransaction_applyModel()
self.stepTic()
self.tic()
portal_type_list = ['Pay Sheet Model Line',]
......@@ -1619,7 +1619,7 @@ class TestPayrollMixin(TestTradeModelLineMixin, ERP5ReportTestCase):
portal_type='Pay Sheet Line')), 0)
# calculate the pay sheet
paysheet_with_date.applyTransformation()
self.stepTic()
self.tic()
# after calculation, paysheet contains one line, because the model applies.
self.assertEquals(len(paysheet_with_date.contentValues(\
portal_type='Pay Sheet Line')), 1)
......@@ -1671,7 +1671,7 @@ class TestPayrollMixin(TestTradeModelLineMixin, ERP5ReportTestCase):
'base_amount/payroll/report/salary/gross'],
quantity=30000,
price=1)
self.stepTic()
self.tic()
# create the paysheet
paysheet = self.portal.accounting_module.newContent(
......@@ -1681,13 +1681,13 @@ class TestPayrollMixin(TestTradeModelLineMixin, ERP5ReportTestCase):
stop_date=DateTime(2009, 07, 31),
price_currency_value=eur)
paysheet.PaySheetTransaction_applyModel()
self.stepTic()
self.tic()
self.assertEquals(len(paysheet.contentValues(\
portal_type='Pay Sheet Line')), 0)
# calculate the pay sheet
paysheet.applyTransformation()
self.stepTic()
self.tic()
# XXX-Aurel Why it is one as the model should not apply since date are not in the range ??
self.assertEquals(len(paysheet.contentValues(\
portal_type='Pay Sheet Line')), 1)
......@@ -1730,7 +1730,7 @@ class TestPayrollMixin(TestTradeModelLineMixin, ERP5ReportTestCase):
expiration_date=DateTime(2009, 12, 31),
version='001',
specialise_value=sequence.get('business_process'))
self.stepTic()
self.tic()
# create the paysheet
paysheet = self.portal.accounting_module.newContent(
......@@ -1740,7 +1740,7 @@ class TestPayrollMixin(TestTradeModelLineMixin, ERP5ReportTestCase):
stop_date=DateTime(2009, 07, 31),
price_currency_value=eur)
paysheet.PaySheetTransaction_applyModel()
self.stepTic()
self.tic()
# the effective model should be model_2 because of the effective date and
# version number
......@@ -1898,7 +1898,7 @@ class TestPayrollMixin(TestTradeModelLineMixin, ERP5ReportTestCase):
'base_amount/payroll/report/salary/gross'],
quantity=70000)
self.stepTic()
self.tic()
# create the paysheet
paysheet = self.portal.accounting_module.newContent(
......@@ -2543,7 +2543,7 @@ class TestPayroll(TestPayrollMixin):
mapped_value_property_list=('price',
'quantity'),)
cell_employer.edit(price=-.42, quantity=2998, contribution_share='employer')
self.stepTic()
self.tic()
# AccountingTransactionModule_getPaySheetMovementMirrorSectionItemList is
# used in the report dialog to display possible organisations.
......@@ -2744,7 +2744,7 @@ class TestPayroll(TestPayrollMixin):
cell_employer_b.edit(price=-.32, quantity=3000,
salary_range='france/slice_b',
contribution_share='employer')
self.stepTic()
self.tic()
# set request variables and render
request_form = self.portal.REQUEST
......@@ -2944,7 +2944,7 @@ class TestPayroll(TestPayrollMixin):
mapped_value_property_list=('price',
'quantity'),)
cell_employer.edit(price=-.40, quantity=3000, contribution_share='employer')
self.stepTic()
self.tic()
# set request variables and render
request_form = self.portal.REQUEST
......@@ -3210,7 +3210,7 @@ class TestPayroll(TestPayrollMixin):
'quantity'),)
cell_employer.edit(price=-.2, quantity=2050, contribution_share='employer')
ps.plan()
self.stepTic()
self.tic()
related_applied_rule = ps.getCausalityRelatedValue(
portal_type='Applied Rule')
......@@ -3219,7 +3219,7 @@ class TestPayroll(TestPayrollMixin):
# build accounting lines
ps.confirm()
ps.start()
self.stepTic()
self.tic()
accounting_line_list = ps.contentValues(
portal_type='Pay Sheet Transaction Line')
self.assertEquals(len(accounting_line_list), 4)
......
......@@ -133,10 +133,10 @@ class TestProject(ERP5TypeTestCase):
stop_date=DateTime('2009/07/26'),
)
self.stepTic()
self.tic()
task.plan()
self.stepTic()
self.tic()
# Script Used for Task Tab
task_line_list = project.Project_getSourceProjectRelatedTaskList()
self.assertEquals(1, len(task_line_list))
......@@ -149,7 +149,7 @@ class TestProject(ERP5TypeTestCase):
self.assertEquals(task_line_list[0], task.default_task_line)
task.confirm()
self.stepTic()
self.tic()
# Script Used for Task Tab keep only showing tasks.
task_line_list = project.Project_getSourceProjectRelatedTaskList()
......
......@@ -325,16 +325,16 @@ return context.generatePredicate(
self.assertEqual(len(rule_tool.searchRuleList(self.sm)), 0)
# unless it gets a trade_phase itself
self.sm.setTradePhase('default/delivery')
self.stepTic()
self.tic()
self.assertEqual(len(rule_tool.searchRuleList(self.sm)), 1)
# But if the rule itself has no trade_phase...
delivery_rule.setTradePhase(None)
self.stepTic()
self.tic()
# then it should match the simulation movement with or without
# trade_phase
self.assertEqual(len(rule_tool.searchRuleList(self.sm)), 1)
self.sm.setTradePhase(None)
self.stepTic()
self.tic()
self.assertEqual(len(rule_tool.searchRuleList(self.sm)), 1)
def test_072_search_with_extra_catalog_keywords(self):
......
......@@ -33,7 +33,8 @@ pystone.clock = time
from Products.ERP5Type.tests.runUnitTest import ERP5TypeTestLoader
from Products.ERP5.tests.testTradeModelLine import TestTradeModelLineSale
ERP5TypeTestLoader._testMethodPrefix = 'perf'
if ERP5TypeTestLoader._testMethodPrefix == 'test':
ERP5TypeTestLoader._testMethodPrefix = 'perf'
class TestSimulationPerformance(TestTradeModelLineSale):
......
......@@ -56,7 +56,7 @@ class TestSupplyMixin:
def beforeTearDown(self):
module = self.portal.getDefaultModule(self.supply_portal_type)
module.manage_delObjects(list(module.objectIds()))
self.stepTic()
self.tic()
class TestSaleSupply(TestSupplyMixin, SubcontentReindexingWrapper,
ERP5TypeTestCase):
......@@ -213,7 +213,7 @@ class TestSaleSupply(TestSupplyMixin, SubcontentReindexingWrapper,
supply = self._makeSupply(start_date_range_min=original_date)
supply_line = self._makeSupplyLine(supply)
self.stepTic()
self.tic()
# create Sale Order and check Supply Line settings when
# a Resource is set on Sale Order Line
......@@ -223,7 +223,7 @@ class TestSaleSupply(TestSupplyMixin, SubcontentReindexingWrapper,
start_date = DateTime())
sale_order_line = sale_order.newContent(portal_type = 'Sale Order Line')
sale_order_line.setResource(product.getRelativeUrl())
self.stepTic()
self.tic()
supply_line_list = self.domain_tool.searchPredicateList(sale_order,
portal_type=self.supply_line_portal_type)
self.assertSameSet([supply_line], supply_line_list)
......
......@@ -548,7 +548,7 @@ class TestTask(TestTaskMixin, ERP5TypeTestCase):
def afterSetUp(self):
self.validateRules()
self.stepTic()
self.tic()
def getTitle(self):
return "Task"
......
......@@ -66,7 +66,7 @@ class TestTemplateTool(ERP5TypeTestCase):
self.dummy_template_tool = getattr(self.portal, self.test_tool_id)
def beforeTearDown(self):
self.stepTic()
self.tic()
mark_replaced_bt_list = ["erp5_odt_style", "erp5_pdm", 'erp5_accounting',
'erp5_workflow', 'erp5_configurator', 'erp5_configurator_ung',
'erp5_ingestion_mysql_innodb_catalog', "erp5_configurator_standard",
......@@ -76,11 +76,11 @@ class TestTemplateTool(ERP5TypeTestCase):
if (bt is not None) and bt.getInstallationState() in ['installed',
'replaced']:
self.templates_tool.manage_delObjects([bt.getId()])
self.stepTic()
self.tic()
bt = self.templates_tool.getInstalledBusinessTemplate("erp5_base")
if bt.getInstallationState() == "replaced":
bt.install(force=1)
self.stepTic()
self.tic()
def checkFolderReindexAllActivityPresense(self):
message_list = [m for m in self.portal.portal_activities.getMessageList()
......@@ -459,7 +459,7 @@ class TestTemplateTool(ERP5TypeTestCase):
""" Simple test for portal_templates.installBusinessTemplatesFromRepository
"""
bt5_name = 'erp5_odt_style'
self.stepTic()
self.tic()
bt = self.templates_tool.getInstalledBusinessTemplate(bt5_name, strict=True)
self.assertEquals(bt, None)
operation_log = \
......@@ -488,7 +488,7 @@ class TestTemplateTool(ERP5TypeTestCase):
"""
bt5_name = 'erp5_ingestion_mysql_innodb_catalog'
template_tool = self.portal.portal_templates
self.stepTic()
self.tic()
bt = template_tool.getInstalledBusinessTemplate(bt5_name)
self.assertEquals(bt, None)
operation_log = template_tool.installBusinessTemplateListFromRepository([bt5_name],
......@@ -498,7 +498,7 @@ class TestTemplateTool(ERP5TypeTestCase):
bt = template_tool.getInstalledBusinessTemplate(bt5_name)
self.assertNotEquals(bt.getId(), None)
self.checkFolderReindexAllActivityNotPresent()
self.stepTic()
self.tic()
bt5_name = 'erp5_odt_style'
operation_log = template_tool.installBusinessTemplateListFromRepository([bt5_name],
......@@ -509,7 +509,7 @@ class TestTemplateTool(ERP5TypeTestCase):
self.assertEquals(bt.getTitle(), bt5_name)
self.commit()
self.checkFolderReindexAllActivityPresense()
self.stepTic()
self.tic()
bt5_name = 'erp5_full_text_myisam_catalog'
operation_log = template_tool.installBusinessTemplateListFromRepository(
......@@ -520,7 +520,7 @@ class TestTemplateTool(ERP5TypeTestCase):
self.assertEquals(bt.getTitle(), bt5_name)
self.commit()
self.checkFolderReindexAllActivityPresense()
self.stepTic()
self.tic()
# Install again should not force catalog to be updated
operation_log = template_tool.installBusinessTemplateListFromRepository(
......@@ -531,13 +531,13 @@ class TestTemplateTool(ERP5TypeTestCase):
self.assertEquals(bt.getTitle(), bt5_name)
self.commit()
self.checkFolderReindexAllActivityNotPresent()
self.stepTic()
self.tic()
def test_installBusinessTemplatesFromRepository_activate(self):
""" Test if update catalog is trigger when needed.
"""
bt5_name_list = ['erp5_odt_style', 'erp5_pdm']
self.stepTic()
self.tic()
for bt5_name in bt5_name_list:
bt = self.templates_tool.getInstalledBusinessTemplate(bt5_name)
self.assertEquals(bt, None)
......@@ -549,7 +549,7 @@ class TestTemplateTool(ERP5TypeTestCase):
bt = self.templates_tool.getInstalledBusinessTemplate(bt5_name)
self.assertEquals(bt, None)
self.stepTic()
self.tic()
for bt5_name in bt5_name_list:
bt = self.templates_tool.getInstalledBusinessTemplate(bt5_name)
self.assertNotEquals(bt, None)
......@@ -561,7 +561,7 @@ class TestTemplateTool(ERP5TypeTestCase):
bt5_name_list = ['erp5_configurator_ung', 'erp5_configurator_standard']
template_tool = self.portal.portal_templates
repository = template_tool.getRepositoryList()[0]
self.stepTic()
self.tic()
for bt5_name in bt5_name_list:
bt = template_tool.getInstalledBusinessTemplate(bt5_name)
self.assertEquals(bt, None)
......@@ -587,7 +587,7 @@ class TestTemplateTool(ERP5TypeTestCase):
(repository, bt5_name + '.bt5'))
self.assertNotEquals(dependency_list, [])
self.stepTic()
self.tic()
template_tool.installBusinessTemplateListFromRepository(
bt5_name_list, install_dependency=True)
for bt5_name in bt5_name_list:
......
This diff is collapsed.
......@@ -403,7 +403,7 @@ class TestTranslation(ERP5TypeTestCase):
dispatcher = self.portal.manage_addProduct['PageTemplates']
dispatcher.manage_addPageTemplate('myzpt')
self.myzpt = self.portal.myzpt
self.stepTic()
self.tic()
def beforeTearDown(self):
self.abort()
......@@ -423,7 +423,7 @@ class TestTranslation(ERP5TypeTestCase):
module.manage_delObjects(list(module.objectIds()))
self.portal.manage_delObjects(['myzpt'])
self.stepTic()
self.tic()
super(TestTranslation, self).beforeTearDown()
def test_Localizer_translation(self):
......@@ -461,7 +461,7 @@ class TestTranslation(ERP5TypeTestCase):
organisation = self.portal.organisation_module.newContent(
portal_type='Organisation')
self.stepTic()
self.tic()
self.assertEquals(set([person_1, person_2]),
set([x.getObject() for x in
self.portal.portal_catalog(translated_portal_type='Personne')]))
......
......@@ -53,50 +53,50 @@ class TestUrl(ERP5TypeTestCase):
for url_protocol in url_protocol_list:
url_crawler.setUrlProtocol(url_protocol)
self.stepTic()
self.tic()
url_without_port = 'localhost/test_client'
url_crawler.setUrlString(url_without_port)
self.stepTic()
self.tic()
self.assertEquals('%s://%s' % (url_protocol, url_without_port),
url_crawler.asURL())
full_url_without_port = '%s://localhost/test_client' % url_protocol
url_crawler.setUrlString(full_url_without_port)
self.stepTic()
self.tic()
self.assertEquals(full_url_without_port, url_crawler.asURL())
full_url_with_port = '%s://localhost:8191/test_client' % url_protocol
url_crawler.setUrlString(full_url_with_port)
self.stepTic()
self.tic()
self.assertEquals(full_url_with_port, url_crawler.asURL())
url_with_port = 'localhost:8191/test_client'
url_crawler.setUrlString(url_with_port)
self.stepTic()
self.tic()
self.assertEquals('%s://%s' % (url_protocol, url_with_port),
url_crawler.asURL())
production_url = 'www.example.com/foo'
url_crawler.setUrlString(production_url)
self.stepTic()
self.tic()
self.assertEquals('%s://%s' % (url_protocol, production_url),
url_crawler.asURL())
production_url_with_port = 'www.example.com:8191/foo'
url_crawler.setUrlString(production_url_with_port)
self.stepTic()
self.tic()
self.assertEquals('%s://%s' % (url_protocol, production_url_with_port),
url_crawler.asURL())
production_url_with_protocol = '%s://www.example.com/foo' % url_protocol
url_crawler.setUrlString(production_url_with_protocol)
self.stepTic()
self.tic()
self.assertEquals(production_url_with_protocol, url_crawler.asURL())
production_url_with_port = '%s://www.example.com:8191/foo' % url_protocol
url_crawler.setUrlString(production_url)
self.stepTic()
self.tic()
self.assertEquals('%s://%s' % (url_protocol, production_url),
url_crawler.asURL())
......
......@@ -71,7 +71,7 @@ class TestERP5BankingAccountingCancellation(TestERP5BankingMixin):
self.createFunctionGroupSiteCategory(site_list=['paris'])
self.stepTic()
self.tic()
# create a person and a bank account
self.person_1 = self.createPerson(id='person_1',
first_name='toto',
......
......@@ -99,7 +99,7 @@ class TestERP5BankingInventory(TestERP5BankingMixin):
site_value=self.site,
start_date = DateTime())
self.assertNotEqual(inventory_group, None)
self.stepTic()
self.tic()
self.assertEqual(len(self.inventory_module.objectValues()), 1)
self.inventory_group = getattr(self.inventory_module, 'inventory_group_1')
......@@ -120,7 +120,7 @@ class TestERP5BankingInventory(TestERP5BankingMixin):
destination_payment_value=self.bank_account_1,
)
self.assertNotEqual(inventory, None)
self.stepTic()
self.tic()
self.assertEqual(len(self.inventory_group.objectValues()), 1)
self.inventory = getattr(self.inventory_group, 'inventory_1')
self.assertEqual(self.inventory.getPortalType(), 'Bank Account Inventory')
......@@ -140,7 +140,7 @@ class TestERP5BankingInventory(TestERP5BankingMixin):
quantity=50000)
self.assertNotEqual(inventory_line, None)
self.stepTic()
self.tic()
self.assertEqual(len(self.inventory.objectValues()), 1)
self.inventory_line = getattr(self.inventory, 'line_1')
......
......@@ -282,7 +282,7 @@ class TestERP5BankingCashBalanceRegulation(TestERP5BankingMixin):
source_value=source_value,
resource_value=self.currency_1,
destination_value=None, source_total_asset_price=50000.0)
self.stepTic()
self.tic()
self.assertEqual(len(self.cash_balance_regulation_module.objectValues()), 1)
self.cash_balance_regulation = getattr(self.cash_balance_regulation_module, 'cash_balance_regulation_1')
self.assertEqual(self.cash_balance_regulation.getPortalType(), 'Cash Balance Regulation')
......@@ -303,7 +303,7 @@ class TestERP5BankingCashBalanceRegulation(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/not_defined', 'cash_status/valid') + self.variation_list,
self.quantity_10000)
# execute tic
self.stepTic()
self.tic()
# check there is only one line created
self.assertEqual(len(self.cash_balance_regulation.objectValues()), 1)
# get the cash balance regulation line
......@@ -344,7 +344,7 @@ class TestERP5BankingCashBalanceRegulation(TestERP5BankingMixin):
# ('emission_letter', 'cash_status', 'variation'), ('emission_letter/not_defined', 'cash_status/valid') + self.variation_list,
# self.quantity_200)
# # execute tic
# self.stepTic()
# self.tic()
# # check there is only one line created
# self.assertEqual(len(self.cash_balance_regulation.objectValues()), 2)
# # get the cash balance regulation line
......@@ -408,7 +408,7 @@ class TestERP5BankingCashBalanceRegulation(TestERP5BankingMixin):
'cash_status/valid') + self.variation_list,
self.outgoing_quantity_5000)
# execute tic
self.stepTic()
self.tic()
# check the number of lines (line1 + line2)
self.assertEqual(len(self.cash_balance_regulation.objectValues()), 2)
# get the second cash balance regulation line
......@@ -446,7 +446,7 @@ class TestERP5BankingCashBalanceRegulation(TestERP5BankingMixin):
# 'cash_status/valid') + self.variation_list,
# self.outgoing_quantity_100)
# # execute tic
# self.stepTic()
# self.tic()
# # check the number of lines (line1 + line2)
# self.assertEqual(len(self.cash_balance_regulation.objectValues()), 4)
# # get the second cash balance regulation line
......@@ -493,7 +493,7 @@ class TestERP5BankingCashBalanceRegulation(TestERP5BankingMixin):
# do the Workflow action
self.workflow_tool.doActionFor(self.cash_balance_regulation, 'confirm_action', wf_id='cash_balance_regulation_workflow')
# execute tic
self.stepTic()
self.tic()
# get state
state = self.cash_balance_regulation.getSimulationState()
# check state is confirmed
......@@ -600,7 +600,7 @@ class TestERP5BankingCashBalanceRegulation(TestERP5BankingMixin):
# do the workflow transition "deliver_action"
self.workflow_tool.doActionFor(self.cash_balance_regulation, 'deliver_action', wf_id='cash_balance_regulation_workflow')
# execute tic
self.stepTic()
self.tic()
# get state of cash sorting
state = self.cash_balance_regulation.getSimulationState()
# check that state is delivered
......
......@@ -218,7 +218,7 @@ class TestERP5BankingCashClassification(TestERP5BankingMixin):
destination_value=None,
source_total_asset_price=52400.0)
# execute tic
self.stepTic()
self.tic()
# set source reference
self.setDocumentSourceReference(self.cash_sorting)
# check source reference
......@@ -245,7 +245,7 @@ class TestERP5BankingCashClassification(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/not_defined', 'cash_status/to_sort') + self.variation_list,
self.quantity_10000)
# execute tic
self.stepTic()
self.tic()
# check there is only one line created
self.assertEqual(len(self.cash_sorting.objectValues()), 1)
# get the cash sorting line
......@@ -285,7 +285,7 @@ class TestERP5BankingCashClassification(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/not_defined', 'cash_status/to_sort') + self.variation_list,
self.quantity_200)
# execute tic
self.stepTic()
self.tic()
# check there is only one line created
self.assertEqual(len(self.cash_sorting.objectValues()), 2)
# get the cash sorting line
......@@ -325,7 +325,7 @@ class TestERP5BankingCashClassification(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/not_defined', 'cash_status/to_sort') + self.variation_list,
self.quantity_5000)
# execute tic
self.stepTic()
self.tic()
# check there is only one line created
self.assertEqual(len(self.cash_sorting.objectValues()), 3)
# get the cash sorting line
......@@ -365,7 +365,7 @@ class TestERP5BankingCashClassification(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/not_defined', 'cash_status/to_sort') + self.variation_list,
self.quantity_100)
# execute tic
self.stepTic()
self.tic()
# check there is only one line created
self.assertEqual(len(self.cash_sorting.objectValues()), 4)
# get the cash sorting line
......@@ -422,7 +422,7 @@ class TestERP5BankingCashClassification(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/not_defined', 'cash_status/to_sort') + self.variation_list,
self.quantity_10000)
# execute tic
self.stepTic()
self.tic()
# check the number of lines (line1 + line2)
self.assertEqual(len(self.cash_sorting.objectValues()), 5)
# get the second cash sorting line
......@@ -461,7 +461,7 @@ class TestERP5BankingCashClassification(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/s', 'cash_status/valid') + self.variation_list,
self.quantity_200)
# execute tic
self.stepTic()
self.tic()
# check the number of lines (line1 + line2)
self.assertEqual(len(self.cash_sorting.objectValues()), 6)
# get the second cash sorting line
......@@ -499,7 +499,7 @@ class TestERP5BankingCashClassification(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/mixed', 'cash_status/valid') + self.variation_list,
self.quantity_100)
# execute tic
self.stepTic()
self.tic()
# check the number of lines (line1 + line2)
self.assertEqual(len(self.cash_sorting.objectValues()), 8)
# get the second cash sorting line
......@@ -537,7 +537,7 @@ class TestERP5BankingCashClassification(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/cancelled') + self.variation_list,
self.quantity_5000)
# execute tic
self.stepTic()
self.tic()
# check the number of lines (line1 + line2)
self.assertEqual(len(self.cash_sorting.objectValues()), 7)
# get the second cash sorting line
......@@ -587,7 +587,7 @@ class TestERP5BankingCashClassification(TestERP5BankingMixin):
# do the Workflow action
self.workflow_tool.doActionFor(self.cash_sorting, 'confirm_action', wf_id='cash_sorting_workflow')
# execute tic
self.stepTic()
self.tic()
# get state
state = self.cash_sorting.getSimulationState()
# check state is confirmed
......@@ -642,7 +642,7 @@ class TestERP5BankingCashClassification(TestERP5BankingMixin):
# do the workflow transition "deliver_action"
self.workflow_tool.doActionFor(self.cash_sorting, 'deliver_action', wf_id='cash_sorting_workflow')
# execute tic
self.stepTic()
self.tic()
# get state of cash sorting
state = self.cash_sorting.getSimulationState()
# check that state is delivered
......
......@@ -204,7 +204,7 @@ class TestERP5BankingCashExchange(TestERP5BankingMixin):
resource_value = self.currency_1,
source_total_asset_price=52400.0)
# execute tic
self.stepTic()
self.tic()
# check we have only one cash sorting
self.assertEqual(len(self.cash_exchange_module.objectValues()), 1)
# get the cash sorting document
......@@ -225,7 +225,7 @@ class TestERP5BankingCashExchange(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/not_defined', 'cash_status/valid') + self.variation_list,
self.quantity_10000)
# execute tic
self.stepTic()
self.tic()
# set source reference
self.setDocumentSourceReference(self.cash_exchange)
# check source reference
......@@ -270,7 +270,7 @@ class TestERP5BankingCashExchange(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/not_defined', 'cash_status/valid') + self.variation_list,
self.quantity_200)
# execute tic
self.stepTic()
self.tic()
# check there is only one line created
self.assertEqual(len(self.cash_exchange.objectValues()), 2)
# get the cash exchange line
......@@ -329,7 +329,7 @@ class TestERP5BankingCashExchange(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/valid') + self.variation_list,
self.outgoing_quantity_5000)
# execute tic
self.stepTic()
self.tic()
# check the number of lines (line1 + line2)
self.assertEqual(len(self.cash_exchange.objectValues()), 3)
# get the second cash exchange line
......@@ -367,7 +367,7 @@ class TestERP5BankingCashExchange(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/not_defined', 'cash_status/valid') + self.variation_list,
self.outgoing_quantity_100)
# execute tic
self.stepTic()
self.tic()
# check the number of lines (line1 + line2)
self.assertEqual(len(self.cash_exchange.objectValues()), 4)
# get the second cash exchange line
......@@ -428,7 +428,7 @@ class TestERP5BankingCashExchange(TestERP5BankingMixin):
# do the workflow transition "deliver_action"
self.workflow_tool.doActionFor(self.cash_exchange, 'deliver_action', wf_id='cash_exchange_workflow')
# execute tic
self.stepTic()
self.tic()
# get state of cash sorting
state = self.cash_exchange.getSimulationState()
# check that state is delivered
......
......@@ -141,7 +141,7 @@ class TestERP5BankingInventory(TestERP5BankingMixin):
# Cash inventory has caisse_1 for source, caisse_2 for destination, and a price cooreponding to the sum of banknote of 10000 abd coin of 200 ( (2+3) * 1000 + (5+7) * 200 )
self.cash_inventory_group = self.cash_inventory_module.newContent(id='cash_inventory_group', portal_type='Cash Inventory Group', source_value=None, destination_value=self.paris, start_date = DateTime())
# execute tic
self.stepTic()
self.tic()
# check we have only one cash inventory
self.assertEqual(len(self.cash_inventory_module.objectValues()), 1)
# get the cash inventory document
......@@ -161,7 +161,7 @@ class TestERP5BankingInventory(TestERP5BankingMixin):
# Cash inventory has caisse_1 for source, caisse_2 for destination, and a price cooreponding to the sum of banknote of 10000 abd coin of 200 ( (2+3) * 1000 + (5+7) * 200 )
self.cash_inventory_group = self.cash_inventory_module.newContent(id='cash_inventory_group_2', portal_type='Cash Inventory Group', source_value=None, destination_value=self.paris, start_date = DateTime())
# execute tic
self.stepTic()
self.tic()
# check we have only one cash inventory
self.assertEqual(len(self.cash_inventory_module.objectValues()), 2)
# get the cash inventory document
......@@ -181,7 +181,7 @@ class TestERP5BankingInventory(TestERP5BankingMixin):
# Cash inventory has caisse_1 for source, caisse_2 for destination, and a price cooreponding to the sum of banknote of 10000 abd coin of 200 ( (2+3) * 1000 + (5+7) * 200 )
self.cash_inventory = self.cash_inventory_group.newContent(id='cash_inventory', portal_type='Cash Inventory', price_currency='currency_module/EUR')
# execute tic
self.stepTic()
self.tic()
# check we have only one cash inventory
self.assertEqual(len(self.cash_inventory_group.objectValues()), 1)
# get the cash inventory document
......@@ -203,7 +203,7 @@ class TestERP5BankingInventory(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/valid') + self.variation_list,
self.quantity_10000)
# execute tic
self.stepTic()
self.tic()
# check there is only one line created
self.assertEqual(len(self.cash_inventory.objectValues()), 1)
# get the cash inventory line
......@@ -260,7 +260,7 @@ class TestERP5BankingInventory(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/valid') + self.variation_list,
self.quantity_200)
# execute tic
self.stepTic()
self.tic()
# check the number of lines (line1 + line2)
self.assertEqual(len(self.cash_inventory.objectValues()), 2)
# get the second cash inventory line
......@@ -319,7 +319,7 @@ class TestERP5BankingInventory(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/valid') + self.variation_list,
self.quantity_5000)
# execute tic
self.stepTic()
self.tic()
# check the number of lines (line1 + line2)
self.assertEqual(len(self.cash_inventory.objectValues()), 3)
# get the second cash inventory line
......
......@@ -216,7 +216,7 @@ class TestERP5BankingCashMovement(TestERP5BankingMixin):
start_date=self.date,
source_total_asset_price=52400.0)
# execute tic
self.stepTic()
self.tic()
# check we have only one vault transfer
self.assertEqual(len(self.cash_movement_module.objectValues()), 1)
# get the vault transfer document
......@@ -238,7 +238,7 @@ class TestERP5BankingCashMovement(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/valid') + self.variation_list,
self.quantity_10000)
# execute tic
self.stepTic()
self.tic()
# check there is only one line created
self.assertEqual(len(self.cash_movement.objectValues()), 1)
# get the vault transfer line
......@@ -300,7 +300,7 @@ class TestERP5BankingCashMovement(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/valid') + self.variation_list,
self.quantity_200)
# execute tic
self.stepTic()
self.tic()
# check the number of lines (line1 + line2)
self.assertEqual(len(self.cash_movement.objectValues()), 2)
# get the second vault transfer line
......@@ -341,7 +341,7 @@ class TestERP5BankingCashMovement(TestERP5BankingMixin):
('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/valid') + self.variation_list,
self.quantity_5000)
# execute tic
self.stepTic()
self.tic()
# Check number of vault transfer lines (line1 + line2 +invalid_line)
self.assertEqual(len(self.cash_movement.objectValues()), 3)
# Check quantity, same as checkTotal + banknote of 500: 11 for 1992 and 13 for 2003
......@@ -362,7 +362,7 @@ class TestERP5BankingCashMovement(TestERP5BankingMixin):
self.cash_movement, 'stop_action',
wf_id='cash_movement_workflow', your_stop_date=self.date)
# execute tic
self.stepTic()
self.tic()
# get state of the cash_movement
state = self.cash_movement.getSimulationState()
# check the state is draft
......@@ -388,7 +388,7 @@ class TestERP5BankingCashMovement(TestERP5BankingMixin):
# try to do the workflow action "confirm_action', cath the exception ValidationFailed raised by workflow transition
self.assertRaises(ValidationFailed, self.workflow_tool.doActionFor, self.cash_movement, 'confirm_action', wf_id='cash_movement_workflow')
# execute tic
self.stepTic()
self.tic()
# get state of the cash_movement
state = self.cash_movement.getSimulationState()
# check the state is draft
......@@ -435,7 +435,7 @@ class TestERP5BankingCashMovement(TestERP5BankingMixin):
self.workflow_tool.doActionFor(self.cash_movement, 'stop_action',
wf_id='cash_movement_workflow', stop_date=self.date)
# execute tic
self.stepTic()
self.tic()
# get state
state = self.cash_movement.getSimulationState()
# check state is stopped
......@@ -453,7 +453,7 @@ class TestERP5BankingCashMovement(TestERP5BankingMixin):
# do the Workflow action
self.workflow_tool.doActionFor(self.cash_movement, 'confirm_action', wf_id='cash_movement_workflow')
# execute tic
self.stepTic()
self.tic()
# get state
state = self.cash_movement.getSimulationState()
# check state is confirmed
......@@ -468,7 +468,7 @@ class TestERP5BankingCashMovement(TestERP5BankingMixin):
# do the Workflow action
self.workflow_tool.doActionFor(self.cash_movement, 'start_action', wf_id='cash_movement_workflow')
# execute tic
self.stepTic()
self.tic()
# get state
state = self.cash_movement.getSimulationState()
# check state is started
......@@ -521,7 +521,7 @@ class TestERP5BankingCashMovement(TestERP5BankingMixin):
# do the workflow transition "deliver_action"
self.workflow_tool.doActionFor(self.cash_movement, 'deliver_action', wf_id='cash_movement_workflow')
# execute tic
self.stepTic()
self.tic()
# get state of cash_movement
state = self.cash_movement.getSimulationState()
# check that state is delivered
......@@ -544,7 +544,7 @@ class TestERP5BankingCashMovement(TestERP5BankingMixin):
# do the workflow transition "deliver_action"
self.workflow_tool.doActionFor(self.cash_movement, 'deliver_action', wf_id='cash_movement_workflow')
# execute tic
self.stepTic()
self.tic()
# get state of cash_movement
state = self.cash_movement.getSimulationState()
# check that state is delivered
......
......@@ -110,7 +110,7 @@ class TestERP5BankingCashMovementNewNotEmitted(TestERP5BankingMonetaryReceptionM
description='test',
start_date=self.date,
source_total_asset_price=2000000.0)
self.stepTic()
self.tic()
self.assertEqual(len(self.cash_movement_module.objectValues()), 1)
self.cash_movement = getattr(self.cash_movement_module, 'cash_movement_1')
self.assertEqual(self.cash_movement.getPortalType(), 'Cash Movement New Not Emitted')
......@@ -159,7 +159,7 @@ class TestERP5BankingCashMovementNewNotEmitted(TestERP5BankingMonetaryReceptionM
'Cash Movement New Not Emitted Line',
)
self.stepTic()
self.tic()
self.assertEqual(len(self.cash_movement.objectValues()), 3)
self.assertEqual(self.cash_movement.getBaobabDestination(),
'site/testsite/principale/spain/caveau/serre/encaisse_des_billets_neufs_non_emis')
......@@ -170,7 +170,7 @@ class TestERP5BankingCashMovementNewNotEmitted(TestERP5BankingMonetaryReceptionM
"""
self.workflow_tool.doActionFor(self.cash_movement, 'stop_action',
wf_id='cash_movement_new_not_emitted_workflow', stop_date=self.date)
self.stepTic()
self.tic()
state = self.cash_movement.getSimulationState()
self.assertEqual(state, 'stopped')
......@@ -179,7 +179,7 @@ class TestERP5BankingCashMovementNewNotEmitted(TestERP5BankingMonetaryReceptionM
Confirm the cash_movement and check it
"""
self.workflow_tool.doActionFor(self.cash_movement, 'confirm_action', wf_id='cash_movement_new_not_emitted_workflow')
self.stepTic()
self.tic()
state = self.cash_movement.getSimulationState()
self.assertEqual(state, 'confirmed')
......@@ -188,7 +188,7 @@ class TestERP5BankingCashMovementNewNotEmitted(TestERP5BankingMonetaryReceptionM
Start the cash_movement and check it
"""
self.workflow_tool.doActionFor(self.cash_movement, 'start_action', wf_id='cash_movement_new_not_emitted_workflow')
self.stepTic()
self.tic()
state = self.cash_movement.getSimulationState()
self.assertEqual(state, 'started')
......@@ -198,7 +198,7 @@ class TestERP5BankingCashMovementNewNotEmitted(TestERP5BankingMonetaryReceptionM
and check that the deliver of a cash tranfer have achieved
"""
self.workflow_tool.doActionFor(self.cash_movement, 'deliver_action', wf_id='cash_movement_new_not_emitted_workflow')
self.stepTic()
self.tic()
state = self.cash_movement.getSimulationState()
self.assertEqual(state, 'delivered')
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment