Commit 4b35b558 authored by Julien Muchembled's avatar Julien Muchembled

CMFActivity: skip distribution for message with no dependency

parent a6583a23
...@@ -62,14 +62,21 @@ class SQLDict(SQLBase): ...@@ -62,14 +62,21 @@ class SQLDict(SQLBase):
active_process_uid_list = [m.active_process_uid 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] method_id_list = [m.method_id for m in message_list]
priority_list = [m.activity_kw.get('priority', 1) for m in message_list] priority_list = [m.activity_kw.get('priority', 1) for m in message_list]
dumped_message_list = map(self.dumpMessage, message_list)
date_list = [m.activity_kw.get('at_date') 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] group_method_id_list = [m.getGroupId() for m in message_list]
tag_list = [m.activity_kw.get('tag', '') 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', '') serialization_tag_list = [m.activity_kw.get('serialization_tag', '')
for m in message_list] for m in message_list]
order_validation_text_list = map(self.getOrderValidationText, order_validation_text_list = []
message_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 # The uid_list also is store in the ZODB
uid_list = activity_tool.getPortalObject().portal_ids.generateNewIdList( uid_list = activity_tool.getPortalObject().portal_ids.generateNewIdList(
id_generator='uid', id_group='portal_activity', id_generator='uid', id_group='portal_activity',
...@@ -85,7 +92,7 @@ class SQLDict(SQLBase): ...@@ -85,7 +92,7 @@ class SQLDict(SQLBase):
group_method_id_list=group_method_id_list, group_method_id_list=group_method_id_list,
tag_list=tag_list, tag_list=tag_list,
serialization_tag_list=serialization_tag_list, serialization_tag_list=serialization_tag_list,
processing_node_list=None, processing_node_list=processing_node_list,
order_validation_text_list=order_validation_text_list) order_validation_text_list=order_validation_text_list)
def generateMessageUID(self, m): def generateMessageUID(self, m):
...@@ -225,10 +232,10 @@ class SQLDict(SQLBase): ...@@ -225,10 +232,10 @@ class SQLDict(SQLBase):
raise ActivityFlushError, ( raise ActivityFlushError, (
'Could not validate %s on %s' % (m.method_id , path)) 'Could not validate %s on %s' % (m.method_id , path))
if len(result): if result:
uid_list = activity_tool.SQLDict_readUidList(path = path, method_id = method_id, uid_list = activity_tool.SQLDict_readUidList(
order_validation_text=None) path=path, method_id=method_id)
if len(uid_list)>0: if uid_list:
activity_tool.SQLBase_delMessage(table=self.sql_table, activity_tool.SQLBase_delMessage(table=self.sql_table,
uid=[x.uid for x in uid_list]) uid=[x.uid for x in uid_list])
...@@ -260,8 +267,9 @@ class SQLDict(SQLBase): ...@@ -260,8 +267,9 @@ class SQLDict(SQLBase):
validation_text_dict = {'none': 1} validation_text_dict = {'none': 1}
message_dict = {} message_dict = {}
for line in result: for line in result:
message = self.loadMessage(line.message, uid=line.uid, line=line, message = self.loadMessage(line.message, uid=line.uid, line=line)
order_validation_text=line.order_validation_text) if not hasattr(message, 'order_validation_text'): # BBB
m.order_validation_text = line.order_validation_text
self.getExecutableMessageList(activity_tool, message, message_dict, self.getExecutableMessageList(activity_tool, message, message_dict,
validation_text_dict, now_date=now_date) validation_text_dict, now_date=now_date)
...@@ -341,8 +349,9 @@ class SQLDict(SQLBase): ...@@ -341,8 +349,9 @@ class SQLDict(SQLBase):
line=line, line=line,
uid=line.uid, uid=line.uid,
date=line.date, date=line.date,
processing_node=line.processing_node, processing_node=line.processing_node)
order_validation_text=line.order_validation_text) if not hasattr(m, 'order_validation_text'): # BBB
m.order_validation_text = line.order_validation_text
message_list.append(m) message_list.append(m)
return message_list return message_list
else: else:
......
...@@ -70,6 +70,10 @@ class SQLQueue(SQLBase): ...@@ -70,6 +70,10 @@ class SQLQueue(SQLBase):
tag_list = [m.activity_kw.get('tag', '') 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', '') serialization_tag_list = [m.activity_kw.get('serialization_tag', '')
for m in message_list] 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) dumped_message_list = map(self.dumpMessage, message_list)
activity_tool.SQLQueue_writeMessageList( activity_tool.SQLQueue_writeMessageList(
uid_list=uid_list, uid_list=uid_list,
...@@ -81,7 +85,7 @@ class SQLQueue(SQLBase): ...@@ -81,7 +85,7 @@ class SQLQueue(SQLBase):
group_method_id_list=group_method_id_list, group_method_id_list=group_method_id_list,
date_list=date_list, date_list=date_list,
tag_list=tag_list, tag_list=tag_list,
processing_node_list=None, processing_node_list=processing_node_list,
serialization_tag_list=serialization_tag_list) serialization_tag_list=serialization_tag_list)
def hasActivity(self, activity_tool, object, method_id=None, only_valid=None, active_process_uid=None): def hasActivity(self, activity_tool, object, method_id=None, only_valid=None, active_process_uid=None):
...@@ -206,6 +210,7 @@ class SQLQueue(SQLBase): ...@@ -206,6 +210,7 @@ class SQLQueue(SQLBase):
message_dict = {} message_dict = {}
for line in result: for line in result:
message = self.loadMessage(line.message, uid=line.uid, line=line) message = self.loadMessage(line.message, uid=line.uid, line=line)
if not hasattr(message, 'order_validation_text'): # BBB
message.order_validation_text = self.getOrderValidationText(message) message.order_validation_text = self.getOrderValidationText(message)
self.getExecutableMessageList(activity_tool, message, message_dict, self.getExecutableMessageList(activity_tool, message, message_dict,
validation_text_dict, now_date=now_date) validation_text_dict, now_date=now_date)
...@@ -263,6 +268,7 @@ class SQLQueue(SQLBase): ...@@ -263,6 +268,7 @@ class SQLQueue(SQLBase):
uid=line.uid, uid=line.uid,
date=line.date, date=line.date,
processing_node=line.processing_node) processing_node=line.processing_node)
if not hasattr(m, 'order_validation_text'): # BBB
m.order_validation_text = self.getOrderValidationText(m) m.order_validation_text = self.getOrderValidationText(m)
message_list.append(m) message_list.append(m)
return message_list return message_list
......
...@@ -10,7 +10,6 @@ class_file: ...@@ -10,7 +10,6 @@ class_file:
<params> <params>
method_id method_id
path path
order_validation_text
</params> </params>
SELECT uid FROM SELECT uid FROM
message message
...@@ -18,4 +17,3 @@ WHERE ...@@ -18,4 +17,3 @@ WHERE
processing = 0 processing = 0
<dtml-if expr="method_id is not None"> AND method_id = <dtml-sqlvar method_id type="string"> </dtml-if> <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="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 ...@@ -30,7 +30,7 @@ VALUES
<dtml-sqlvar expr="active_process_uid_list[loop_item]" type="int" optional>, <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-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-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, 0,
<dtml-sqlvar expr="priority_list[loop_item]" type="int">, <dtml-sqlvar expr="priority_list[loop_item]" type="int">,
<dtml-sqlvar expr="group_method_id_list[loop_item]" type="string">, <dtml-sqlvar expr="group_method_id_list[loop_item]" type="string">,
......
...@@ -30,7 +30,7 @@ VALUES ...@@ -30,7 +30,7 @@ VALUES
<dtml-sqlvar expr="active_process_uid_list[loop_item]" type="int" optional>, <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-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-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, 0,
<dtml-sqlvar expr="priority_list[loop_item]" type="int">, <dtml-sqlvar expr="priority_list[loop_item]" type="int">,
<dtml-sqlvar expr="group_method_id_list[loop_item]" type="string">, <dtml-sqlvar expr="group_method_id_list[loop_item]" type="string">,
......
...@@ -181,7 +181,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -181,7 +181,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
# Needed so that the message are commited into the queue # Needed so that the message are commited into the queue
self.commit() self.commit()
self.assertEquals(self.title1,organisation.getTitle()) self.assertEquals(self.title1,organisation.getTitle())
portal.portal_activities.distribute()
portal.portal_activities.tic() portal.portal_activities.tic()
self.assertEquals(self.title2,organisation.getTitle()) self.assertEquals(self.title2,organisation.getTitle())
message_list = portal.portal_activities.getMessageList() message_list = portal.portal_activities.getMessageList()
...@@ -211,7 +210,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -211,7 +210,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
self.commit() self.commit()
message_list = portal.portal_activities.getMessageList() message_list = portal.portal_activities.getMessageList()
self.assertEquals(len(message_list),1) self.assertEquals(len(message_list),1)
portal.portal_activities.distribute()
portal.portal_activities.tic() portal.portal_activities.tic()
self.assertEquals(1,organisation.getFoobar()) self.assertEquals(1,organisation.getFoobar())
message_list = portal.portal_activities.getMessageList() message_list = portal.portal_activities.getMessageList()
...@@ -264,7 +262,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -264,7 +262,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
organisation.activate(activity=activity).DeferredSetTitle(self.title2) organisation.activate(activity=activity).DeferredSetTitle(self.title2)
organisation.flushActivity(invoke=1) organisation.flushActivity(invoke=1)
self.commit() self.commit()
portal.portal_activities.distribute()
portal.portal_activities.tic() portal.portal_activities.tic()
self.commit() self.commit()
message_list = portal.portal_activities.getMessageList() message_list = portal.portal_activities.getMessageList()
...@@ -347,9 +344,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -347,9 +344,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
portal.portal_activities.distribute() portal.portal_activities.distribute()
portal.portal_activities.tic() portal.portal_activities.tic()
self.commit() self.commit()
portal.portal_activities.distribute()
portal.portal_activities.tic()
self.commit()
message_list = portal.portal_activities.getMessageList() message_list = portal.portal_activities.getMessageList()
self.assertEquals(len(message_list),0) self.assertEquals(len(message_list),0)
self.assertEquals(organisation.getTitle(),self.title1) self.assertEquals(organisation.getTitle(),self.title1)
...@@ -361,7 +355,7 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -361,7 +355,7 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
""" """
portal = self.getPortal() portal = self.getPortal()
def crashThisActivity(self): def crashThisActivity(self):
self.IWillCrach() self.IWillCrash()
organisation = portal.organisation._getOb(self.company_id) organisation = portal.organisation._getOb(self.company_id)
Organisation.crashThisActivity = crashThisActivity Organisation.crashThisActivity = crashThisActivity
organisation.activate(activity=activity).crashThisActivity() organisation.activate(activity=activity).crashThisActivity()
...@@ -370,7 +364,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -370,7 +364,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
message_list = portal.portal_activities.getMessageList() message_list = portal.portal_activities.getMessageList()
LOG('Before MessageWithErrorOnActivityFails, message_list',0,[x.__dict__ for x in message_list]) LOG('Before MessageWithErrorOnActivityFails, message_list',0,[x.__dict__ for x in message_list])
self.assertEquals(len(message_list),1) self.assertEquals(len(message_list),1)
portal.portal_activities.distribute()
portal.portal_activities.tic() portal.portal_activities.tic()
# XXX HERE WE SHOULD USE TIME SHIFT IN ORDER TO SIMULATE MULTIPLE TICS # XXX HERE WE SHOULD USE TIME SHIFT IN ORDER TO SIMULATE MULTIPLE TICS
# Test if there is still the message after it crashed # Test if there is still the message after it crashed
...@@ -396,7 +389,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -396,7 +389,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
self.commit() self.commit()
self.assertEquals(self.title1,organisation.getTitle()) self.assertEquals(self.title1,organisation.getTitle())
self.assertRaises(ActivityPendingError,organisation.edit,id=self.company_id2) self.assertRaises(ActivityPendingError,organisation.edit,id=self.company_id2)
portal.portal_activities.distribute()
portal.portal_activities.tic() portal.portal_activities.tic()
def TryActiveProcess(self, activity): def TryActiveProcess(self, activity):
...@@ -413,8 +405,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -413,8 +405,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
self.commit() self.commit()
portal.portal_activities.distribute() portal.portal_activities.distribute()
portal.portal_activities.tic() portal.portal_activities.tic()
portal.portal_activities.distribute()
portal.portal_activities.tic()
self.assertEquals(self.title1,organisation.getTitle()) self.assertEquals(self.title1,organisation.getTitle())
result = active_process.getResultList()[0] result = active_process.getResultList()[0]
self.assertEquals(result.method_id , 'getTitle') self.assertEquals(result.method_id , 'getTitle')
...@@ -1602,7 +1592,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -1602,7 +1592,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
message_list = portal.portal_activities.getMessageList() message_list = portal.portal_activities.getMessageList()
self.assertEquals(len(message_list),5) self.assertEquals(len(message_list),5)
portal.portal_activities.distribute()
portal.portal_activities.tic() portal.portal_activities.tic()
expected = dict(SQLDict=1, SQLQueue=5)[activity] expected = dict(SQLDict=1, SQLQueue=5)[activity]
self.assertEquals(expected, organisation.getFoobar()) self.assertEquals(expected, organisation.getFoobar())
...@@ -1615,7 +1604,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -1615,7 +1604,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
message_list = portal.portal_activities.getMessageList() message_list = portal.portal_activities.getMessageList()
self.assertEquals(len(message_list),5) self.assertEquals(len(message_list),5)
portal.portal_activities.distribute()
portal.portal_activities.tic() portal.portal_activities.tic()
self.assertEquals(expected * 2, organisation.getFoobar()) self.assertEquals(expected * 2, organisation.getFoobar())
...@@ -1635,7 +1623,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -1635,7 +1623,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
message_list = portal.portal_activities.getMessageList() message_list = portal.portal_activities.getMessageList()
self.assertEquals(len(message_list),20) self.assertEquals(len(message_list),20)
portal.portal_activities.distribute()
portal.portal_activities.tic() portal.portal_activities.tic()
self.assertEquals(dict(SQLDict=11, SQLQueue=60)[activity], self.assertEquals(dict(SQLDict=11, SQLQueue=60)[activity],
organisation.getFoobar()) organisation.getFoobar())
...@@ -2352,29 +2339,27 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -2352,29 +2339,27 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
message = '\nCheck similarities are not deleted before execution of original message (SQLDict)' message = '\nCheck similarities are not deleted before execution of original message (SQLDict)'
ZopeTestCase._print(message) ZopeTestCase._print(message)
LOG('Testing... ',0,message) LOG('Testing... ',0,message)
organisation = self.getPortal().organisation_module.newContent(portal_type='Organisation')
self.tic()
activity_tool = self.getActivityTool() activity_tool = self.getActivityTool()
check_result_dict = {} marker = []
def checkActivityCount(self, other_tag): def doSomething(self, other_tag):
if len(check_result_dict) == 0: marker.append(self.countMessage(tag=other_tag))
check_result_dict['done'] = activity_tool.countMessage(tag=other_tag) activity_tool.__class__.doSomething = doSomething
try: try:
Organisation.checkActivityCount = checkActivityCount
# Adds two similar but not the same activities. # Adds two similar but not the same activities.
organisation.activate(activity='SQLDict', tag='a').checkActivityCount(other_tag='b') activity_tool.activate(activity='SQLDict', after_tag='foo',
organisation.activate(activity='SQLDict', tag='b').checkActivityCount(other_tag='a') tag='a').doSomething(other_tag='b')
activity_tool.activate(activity='SQLDict', after_tag='bar',
tag='b').doSomething(other_tag='a')
self.commit() self.commit()
self.assertEqual(len(activity_tool.getMessageList()), 2) activity_tool.tic() # make sure distribution phase was not skipped
activity_tool.distribute() activity_tool.distribute()
# after distribute, similarities are still there. # after distribute, similarities are still there.
self.assertEqual(len(activity_tool.getMessageList()), 2) self.assertEqual(len(activity_tool.getMessageList()), 2)
self.tic() activity_tool.tic()
self.assertEqual(len(activity_tool.getMessageList()), 0) self.assertEqual(len(activity_tool.getMessageList()), 0)
self.assertEqual(len(check_result_dict), 1) self.assertEqual(marker, [1])
self.assertEqual(check_result_dict['done'], 1)
finally: finally:
delattr(Organisation, 'checkActivityCount') del activity_tool.__class__.doSomething
def test_102_2_CheckSQLDictDeleteDuplicatesBeforeExecution(self, quiet=0, run=run_all_test): def test_102_2_CheckSQLDictDeleteDuplicatesBeforeExecution(self, quiet=0, run=run_all_test):
""" """
...@@ -2386,32 +2371,30 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -2386,32 +2371,30 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
message = '\nCheck duplicates are deleted before execution of original message (SQLDict)' message = '\nCheck duplicates are deleted before execution of original message (SQLDict)'
ZopeTestCase._print(message) ZopeTestCase._print(message)
LOG('Testing... ',0,message) LOG('Testing... ',0,message)
organisation = self.getPortal().organisation_module.newContent(portal_type='Organisation')
self.tic()
activity_tool = self.getActivityTool() activity_tool = self.getActivityTool()
check_result_dict = {} marker = []
def checkActivityCount(self, other_tag): def doSomething(self, other_tag):
if len(check_result_dict) == 0: marker.append(self.countMessage(tag=other_tag))
check_result_dict['done'] = activity_tool.countMessage(tag=other_tag) activity_tool.__class__.doSomething = doSomething
try: try:
Organisation.checkActivityCount = checkActivityCount
# Adds two same activities. # 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() self.commit()
uid1, = [x.uid for x in activity_tool.getMessageList()] 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.commit()
self.assertEqual(len(activity_tool.getMessageList()), 2) self.assertEqual(len(activity_tool.getMessageList()), 2)
activity_tool.distribute() activity_tool.distribute()
# After distribute, duplicate is deleted. # After distribute, duplicate is deleted.
uid2, = [x.uid for x in activity_tool.getMessageList()] uid2, = [x.uid for x in activity_tool.getMessageList()]
self.assertNotEqual(uid1, uid2) self.assertNotEqual(uid1, uid2)
self.tic() activity_tool.tic()
self.assertEqual(len(activity_tool.getMessageList()), 0) self.assertEqual(len(activity_tool.getMessageList()), 0)
self.assertEqual(len(check_result_dict), 1) self.assertEqual(marker, [1])
self.assertEqual(check_result_dict['done'], 1)
finally: finally:
delattr(Organisation, 'checkActivityCount') del activity_tool.__class__.doSomething
def test_102_3_CheckSQLDictDistributeWithSerializationTagAndGroupMethodId( def test_102_3_CheckSQLDictDistributeWithSerializationTagAndGroupMethodId(
self, quiet=0): self, quiet=0):
...@@ -3187,7 +3170,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -3187,7 +3170,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
for activity in 'SQLDict', 'SQLQueue': for activity in 'SQLDict', 'SQLQueue':
activity_tool.activate(activity=activity).doSomething(activity) activity_tool.activate(activity=activity).doSomething(activity)
self.commit() self.commit()
activity_tool.distribute()
# Make first commit in dequeueMessage raise # Make first commit in dequeueMessage raise
registerFailingTransactionManager() registerFailingTransactionManager()
self.assertRaises(CommitFailed, activity_tool.tic) self.assertRaises(CommitFailed, activity_tool.tic)
...@@ -3438,7 +3420,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): ...@@ -3438,7 +3420,6 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor):
activity_tool.__class__.doSomething = doSomething activity_tool.__class__.doSomething = doSomething
activity_tool.activate(activity='SQLQueue').doSomething() activity_tool.activate(activity='SQLQueue').doSomething()
self.commit() self.commit()
activity_tool.distribute()
activity_tool.tic() activity_tool.tic()
message_list = activity_tool.getMessageList() message_list = activity_tool.getMessageList()
self.assertEquals(['doSomething'],[x.method_id for x in message_list]) self.assertEquals(['doSomething'],[x.method_id for x in message_list])
......
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