From 6656fddb8d9033e88ebdbefeb1cd6329fe6daa95 Mon Sep 17 00:00:00 2001
From: Vincent Pelletier <vincent@nexedi.com>
Date: Mon, 22 Oct 2007 10:31:17 +0000
Subject: [PATCH] Add a check for worklist's advertised number of documents (so
 automaticaly advertise the number of documents).

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@17085 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/tests/testWorklist.py | 61 ++++++++++++++++++++++--------
 1 file changed, 46 insertions(+), 15 deletions(-)

diff --git a/product/ERP5/tests/testWorklist.py b/product/ERP5/tests/testWorklist.py
index b7dc729bac..a47e5b87c7 100644
--- a/product/ERP5/tests/testWorklist.py
+++ b/product/ERP5/tests/testWorklist.py
@@ -128,6 +128,12 @@ class TestWorklist(ERP5TypeTestCase):
     module = self.getPortal().getDefaultModule(self.checked_portal_type)
     return module.newContent(portal_type=self.checked_portal_type)
 
+  def getWorklistDocumentCountFromActionName(self, action_name):
+    self.assertEquals(action_name[-1], ')')
+    left_parenthesis_offset = action_name.rfind('(')
+    self.assertNotEquals(left_parenthesis_offset, -1)
+    return int(action_name[left_parenthesis_offset + 1:-1])
+
   def createWorklist(self):
     workflow = self.getWorkflowTool()[self.checked_workflow]
     worklists = workflow.worklists
@@ -137,7 +143,8 @@ class TestWorklist(ERP5TypeTestCase):
           (self.worklist_owner_id, self.actbox_owner_name, 'Owner')]:
       worklists.addWorklist(worklist_id)
       worklist_definition = worklists._getOb(worklist_id)
-      worklist_definition.setProperties('', actbox_name=actbox_name,
+      worklist_definition.setProperties('',
+          actbox_name='%s (%%(count)s)' % (actbox_name, ),
           props={'guard_roles': role,
                  'var_match_portal_type': self.checked_portal_type})
 
@@ -170,11 +177,15 @@ class TestWorklist(ERP5TypeTestCase):
       self.login(user_id)
       result = workflow_tool.listActions(object=document)
       self.logMessage("Check %s worklist as Assignor" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_assignor_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_assignor_name)]
       self.assertEquals(len(entry_list), 0)
       self.logMessage("Check %s worklist as Owner" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_owner_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_owner_name)]
       self.assertEquals(len(entry_list), 1)
+      self.assertEquals(
+        self.getWorklistDocumentCountFromActionName(entry_list[0]['name']), 1)
       self.logout()
     for user_id in ('foo', 'bar'):
       self.logMessage("Check %s worklist" % user_id)
@@ -197,30 +208,40 @@ class TestWorklist(ERP5TypeTestCase):
       self.login(user_id)
       result = workflow_tool.listActions(object=document)
       self.logMessage("Check %s worklist as Assignor" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_assignor_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_assignor_name)]
       self.assertEquals(len(entry_list), 0)
       self.logMessage("Check %s worklist as Owner" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_owner_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_owner_name)]
       self.assertEquals(len(entry_list), 1)
+      self.assertEquals(
+        self.getWorklistDocumentCountFromActionName(entry_list[0]['name']), 1)
       self.logout()
     for user_id in ('bar', ):
       self.login(user_id)
       result = workflow_tool.listActions(object=document)
       self.logMessage("Check %s worklist as Assignor" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_assignor_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_assignor_name)]
       self.assertEquals(len(entry_list), 0)
       self.logMessage("Check %s worklist as Owner" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_owner_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_owner_name)]
       self.assertEquals(len(entry_list), 0)
       self.logout()
     for user_id in ('foo', ):
       self.login(user_id)
       result = workflow_tool.listActions(object=document)
       self.logMessage("Check %s worklist as Assignor" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_assignor_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_assignor_name)]
       self.assertEquals(len(entry_list), 1)
+      self.assertTrue(
+        self.getWorklistDocumentCountFromActionName(entry_list[0]['name']), 1)
       self.logMessage("Check %s worklist as Owner" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_owner_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_owner_name)]
       self.assertEquals(len(entry_list), 0)
       self.logout()
 
@@ -241,30 +262,40 @@ class TestWorklist(ERP5TypeTestCase):
       self.login(user_id)
       result = workflow_tool.listActions(object=document)
       self.logMessage("Check %s worklist as Assignor" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_assignor_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_assignor_name)]
       self.assertEquals(len(entry_list), 0)
       self.logMessage("Check %s worklist as Owner" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_owner_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_owner_name)]
       self.assertEquals(len(entry_list), 1)
+      self.assertTrue(
+        self.getWorklistDocumentCountFromActionName(entry_list[0]['name']), 1)
       self.logout()
     for user_id in ('bar', ):
       self.login(user_id)
       result = workflow_tool.listActions(object=document)
       self.logMessage("Check %s worklist as Assignor" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_assignor_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_assignor_name)]
       self.assertEquals(len(entry_list), 0)
       self.logMessage("Check %s worklist as Owner" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_owner_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_owner_name)]
       self.assertEquals(len(entry_list), 0)
       self.logout()
     for user_id in ('foo', ):
       self.login(user_id)
       result = workflow_tool.listActions(object=document)
       self.logMessage("Check %s worklist as Assignor" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_assignor_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_assignor_name)]
       self.assertEquals(len(entry_list), 1)
+      self.assertTrue(
+        self.getWorklistDocumentCountFromActionName(entry_list[0]['name']), 1)
       self.logMessage("Check %s worklist as Owner" % user_id)
-      entry_list = [x for x in result if x['name'] == self.actbox_owner_name]
+      entry_list = [x for x in result \
+                    if x['name'].startswith(self.actbox_owner_name)]
       self.assertEquals(len(entry_list), 0)
       self.logout()
 
-- 
2.30.9