From 8988266d8ee26dccc6b6e83947102de27fca8aea Mon Sep 17 00:00:00 2001 From: Chris Adam Date: Tue, 10 Dec 2024 16:32:14 +0100 Subject: [PATCH 1/3] Added test for utils dv_clean WIP --- imio/dms/mail/tests/test_utils.py | 16 ++++++++++++++++ imio/dms/mail/utils.py | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/imio/dms/mail/tests/test_utils.py b/imio/dms/mail/tests/test_utils.py index f558b9c9..82021e19 100644 --- a/imio/dms/mail/tests/test_utils.py +++ b/imio/dms/mail/tests/test_utils.py @@ -13,6 +13,7 @@ from imio.dms.mail.utils import create_personnel_content from imio.dms.mail.utils import create_read_label_cron_task from imio.dms.mail.utils import current_user_groups_ids +from imio.dms.mail.utils import dv_clean from imio.dms.mail.utils import ensure_set_field from imio.dms.mail.utils import get_dms_config from imio.dms.mail.utils import get_scan_id @@ -641,3 +642,18 @@ def test_create_read_cron_task(self): self.assertEqual(annot["imio.dms.mail"]["read_label_cron"]["agent1"]["end"], end2) self.assertSetEqual(annot["imio.dms.mail"]["read_label_cron"]["agent1"]["orgs"], {dg_uid}) reset_dms_config() + + def test_dv_clean(self): + # Test wrong user + self.change_user("agent") + self.assertEqual(dv_clean(self.portal), "You must be a zope manager to run this script") + + self.change_user("admin") + # Test invalid date + self.assertIsNone(dv_clean(self.portal, date_back="invalid")) + # Test valid date + dv_clean(self.portal, date_back="20220212") + # Test base case + dv_clean(self.portal) + + # TODO add mails to be processed by dv_clean ... diff --git a/imio/dms/mail/utils.py b/imio/dms/mail/utils.py index 7b1404c0..80cf16f3 100644 --- a/imio/dms/mail/utils.py +++ b/imio/dms/mail/utils.py @@ -503,7 +503,7 @@ def dv_clean(portal, days_back="365", date_back=None): "-> days_back=nb of days to keep (default '365') (not used if date_back is used)", "-> date_back=fixed date to consider (default None) (format YYYYMMDD)", ] - # logger.info("Starting dv_clean at {}".format(start)) + log_list(out, "Starting dv_clean at {}".format(start), logger) from Products.CPUtils.Extensions.utils import dv_images_size From 5319b326ef7a6198dc0e00f817d3df1e9ffa6ce0 Mon Sep 17 00:00:00 2001 From: Chris Adam Date: Wed, 11 Dec 2024 11:03:42 +0100 Subject: [PATCH 2/3] Added utils test WIP --- imio/dms/mail/tests/test_utils.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/imio/dms/mail/tests/test_utils.py b/imio/dms/mail/tests/test_utils.py index 82021e19..adf63f06 100644 --- a/imio/dms/mail/tests/test_utils.py +++ b/imio/dms/mail/tests/test_utils.py @@ -5,6 +5,7 @@ from datetime import timedelta from ftw.labels.interfaces import ILabeling from imio.dms.mail import AUC_RECORD +from imio.dms.mail.testing import change_user from imio.dms.mail.testing import DMSMAIL_INTEGRATION_TESTING from imio.dms.mail.testing import reset_dms_config from imio.dms.mail.utils import back_or_again_state @@ -461,6 +462,21 @@ def test_VariousMethods_is_unprotected(self): continue view = VariousUtilsMethods(obj, obj.REQUEST) self.assertFalse(view.is_unprotected(), "obj {} is unprotected !!".format(obj.absolute_url_path())) +not + def test_VariousMethods_user_usages(self): + obj = self.portal + view = VariousUtilsMethods(obj, obj.REQUEST) + + self.change_user("admin") + self.assertEqual(view.user_usages(), "You must give a parameter named 'userid'") + self.assertEqual(view.user_usages("invalid"), "Cannot find a user with userid='{}'".format("invalid")) + view.user_usages("admin") + view.user_usages("agent") + view.user_usages("encodeur") + view.user_usages("dirg") + + self.change_user("agent") + self.assertEqual(view.user_usages("agent"), "You must be a zope manager to run this script") def test_IdmUtilsMethods_get_im_folder(self): imail = sub_create(self.portal["incoming-mail"], "dmsincomingmail", datetime.now(), "my-id") From 9899a2920123a033880ce882f2fb59c247483643 Mon Sep 17 00:00:00 2001 From: Chris Adam Date: Thu, 19 Dec 2024 09:45:54 +0100 Subject: [PATCH 3/3] Added tests WIP --- imio/dms/mail/tests/test_utils.py | 48 +++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/imio/dms/mail/tests/test_utils.py b/imio/dms/mail/tests/test_utils.py index adf63f06..378657d8 100644 --- a/imio/dms/mail/tests/test_utils.py +++ b/imio/dms/mail/tests/test_utils.py @@ -5,7 +5,6 @@ from datetime import timedelta from ftw.labels.interfaces import ILabeling from imio.dms.mail import AUC_RECORD -from imio.dms.mail.testing import change_user from imio.dms.mail.testing import DMSMAIL_INTEGRATION_TESTING from imio.dms.mail.testing import reset_dms_config from imio.dms.mail.utils import back_or_again_state @@ -462,7 +461,12 @@ def test_VariousMethods_is_unprotected(self): continue view = VariousUtilsMethods(obj, obj.REQUEST) self.assertFalse(view.is_unprotected(), "obj {} is unprotected !!".format(obj.absolute_url_path())) -not + + def test_VariousMethods_template_infos(self): + obj = self.portal + view = VariousUtilsMethods(obj, obj.REQUEST) + view.template_infos() + def test_VariousMethods_user_usages(self): obj = self.portal view = VariousUtilsMethods(obj, obj.REQUEST) @@ -478,6 +482,12 @@ def test_VariousMethods_user_usages(self): self.change_user("agent") self.assertEqual(view.user_usages("agent"), "You must be a zope manager to run this script") + def test_VariousMethods_pg_organizations(self): + obj = self.portal + view = VariousUtilsMethods(obj, obj.REQUEST) + import ipdb; ipdb.set_trace() + view.pg_organizations() + def test_IdmUtilsMethods_get_im_folder(self): imail = sub_create(self.portal["incoming-mail"], "dmsincomingmail", datetime.now(), "my-id") view = IdmUtilsMethods(imail, imail.REQUEST) @@ -672,4 +682,36 @@ def test_dv_clean(self): # Test base case dv_clean(self.portal) - # TODO add mails to be processed by dv_clean ... + # TODO add mails to be processed by dv_clean ... WITH ANNOTATIONS ? + + imail = sub_create( + self.portal["incoming-mail"], + "dmsincomingmail", + datetime.now() - timedelta(days=366), + "test-mail", + **{ + "assigned_user": u"agent", + "title": u"test", + "treating_groups": self.pgof["direction-generale"]["secretariat"].UID(), + "sender": self.portal["contacts"]["hps-searches"]['all_hps'].results()[0].getObject(), + "mail_type": "mail", + } + ) + + iemail = sub_create( + self.portal["incoming-mail"], + "dmsincomingmail", + datetime.now(), + "test-email", + **{ + "assigned_user": u"agent", + "title": u"test", + "treating_groups": self.pgof["direction-generale"]["secretariat"].UID(), + "sender": self.portal["contacts"]["hps-searches"]['all_hps'].results()[0].getObject(), + "mail_type": "email", + } + ) + + api.content.transition(obj=imail, to_state="closed") + api.content.transition(obj=iemail, to_state="closed") + dv_clean(self.portal)