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