tests/functional wallace/module_resources.py

Thomas Brüderli bruederli at kolabsys.com
Mon Mar 10 13:16:35 CET 2014


 tests/functional/test_wallace/test_005_resource_invitation.py |   15 ++++++++++
 wallace/module_resources.py                                   |    7 ++++
 2 files changed, 22 insertions(+)

New commits:
commit b3afa468579586b62aee849779c89d0104c3d21e
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Wed Mar 5 07:14:13 2014 -0500

    Test handling of (some) invalid iTip messages to resources

diff --git a/tests/functional/test_wallace/test_005_resource_invitation.py b/tests/functional/test_wallace/test_005_resource_invitation.py
index 1800e19..53ed2ec 100644
--- a/tests/functional/test_wallace/test_005_resource_invitation.py
+++ b/tests/functional/test_wallace/test_005_resource_invitation.py
@@ -505,3 +505,18 @@ class TestResourceInvitation(unittest.TestCase):
         uid3 = self.send_itip_invitation(self.audi['mail'], datetime.datetime(2014,2,22, 8,0,0), template=itip_recurring)
         accept = self.check_message_received("Reservation Request for test was ACCEPTED")
         self.assertIsInstance(accept, email.message.Message)
+
+
+    def test_010_invalid_bookings(self):
+        self.purge_mailbox(self.john['mailbox'])
+
+        itip_other = itip_invitation.replace("mailto:%s", "mailto:some-other-resource at example.org\nDESCRIPTION: Sent to %s")
+        self.send_itip_invitation(self.audi['mail'], datetime.datetime(2014,3,22, 8,0,0), template=itip_other)
+
+        time.sleep(1)
+
+        itip_invalid = itip_invitation.replace("DTSTART;", "X-DTSTART;")
+        self.send_itip_invitation(self.audi['mail'], datetime.datetime(2014,3,24, 19,30,0), template=itip_invalid)
+
+        self.assertEqual(self.check_message_received("Reservation Request for test was ACCEPTED", self.audi['mail']), None)
+
diff --git a/wallace/module_resources.py b/wallace/module_resources.py
index 302f276..ee63e85 100644
--- a/wallace/module_resources.py
+++ b/wallace/module_resources.py
@@ -206,6 +206,13 @@ def execute(*args, **kw):
     # iTip events
     resource_dns = resource_records_from_itip_events(itip_events, resource_recipient)
 
+    # check if resource attendees match the envelope recipient
+    if len(resource_dns) == 0:
+        log.info(_("No resource attendees matching envelope recipient %s, Reject message") % (resource_recipient))
+        reject(filepath)
+        return False
+
+
     # Get the resource details, which includes details on the IMAP folder
     resources = {}
     for resource_dn in list(set(resource_dns)):




More information about the commits mailing list