summaryrefslogtreecommitdiffstats
path: root/tests/functional/test_wallace/test_007_invitationpolicy.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/test_wallace/test_007_invitationpolicy.py')
-rw-r--r--tests/functional/test_wallace/test_007_invitationpolicy.py39
1 files changed, 37 insertions, 2 deletions
diff --git a/tests/functional/test_wallace/test_007_invitationpolicy.py b/tests/functional/test_wallace/test_007_invitationpolicy.py
index 090dcf3..cca5b96 100644
--- a/tests/functional/test_wallace/test_007_invitationpolicy.py
+++ b/tests/functional/test_wallace/test_007_invitationpolicy.py
@@ -299,6 +299,17 @@ class TestWallaceInvitationpolicy(unittest.TestCase):
'kolabinvitationpolicy': ['ALL_SAVE_AND_FORWARD','ACT_UPDATE_AND_NOTIFY']
}
+ self.bill = {
+ 'displayname': 'Bill Mayor',
+ 'mail': 'bill.mayor@example.org',
+ 'dn': 'uid=mayor,ou=People,dc=example,dc=org',
+ 'preferredlanguage': 'en_US',
+ 'mailbox': 'user/bill.mayor@example.org',
+ 'kolabcalendarfolder': 'user/bill.mayor/Calendar@example.org',
+ 'kolabtasksfolder': 'user/bill.mayor/Tasks@example.org',
+ 'kolabinvitationpolicy': ['ALL_SAVE_TO_FOLDER:lucy.meyer@example.org','ALL_REJECT']
+ }
+
self.external = {
'displayname': 'Bob External',
'mail': 'bob.external@gmail.com'
@@ -310,6 +321,7 @@ class TestWallaceInvitationpolicy(unittest.TestCase):
user_add("Jack", "Tentative", kolabinvitationpolicy=self.jack['kolabinvitationpolicy'], preferredlanguage=self.jack['preferredlanguage'])
user_add("Mark", "German", kolabinvitationpolicy=self.mark['kolabinvitationpolicy'], preferredlanguage=self.mark['preferredlanguage'])
user_add("Lucy", "Meyer", kolabinvitationpolicy=self.lucy['kolabinvitationpolicy'], preferredlanguage=self.lucy['preferredlanguage'])
+ user_add("Bill", "Mayor", kolabinvitationpolicy=self.bill['kolabinvitationpolicy'], preferredlanguage=self.bill['preferredlanguage'])
time.sleep(1)
from tests.functional.synchronize import synchronize_once
@@ -339,7 +351,7 @@ class TestWallaceInvitationpolicy(unittest.TestCase):
smtp = smtplib.SMTP('localhost', 10026)
smtp.sendmail(from_addr, to_addr, mime_message % (to_addr, method, itip_payload))
- def send_itip_invitation(self, attendee_email, start=None, allday=False, template=None, summary="test", sequence=0, partstat='NEEDS-ACTION'):
+ def send_itip_invitation(self, attendee_email, start=None, allday=False, template=None, summary="test", sequence=0, partstat='NEEDS-ACTION', from_addr=None):
if start is None:
start = datetime.datetime.now()
@@ -354,6 +366,12 @@ class TestWallaceInvitationpolicy(unittest.TestCase):
default_template = itip_invitation
date_format = '%Y%m%dT%H%M%S'
+ if from_addr is not None:
+ if template:
+ template = template.replace("john.doe@example.org", from_addr)
+ else:
+ default_template = default_template.replace("john.doe@example.org", from_addr)
+
self.send_message((template if template is not None else default_template) % {
'uid': uid,
'start': start.strftime(date_format),
@@ -363,7 +381,7 @@ class TestWallaceInvitationpolicy(unittest.TestCase):
'sequence': sequence,
'partstat': partstat
},
- attendee_email)
+ attendee_email, from_addr=from_addr)
return uid
@@ -671,6 +689,7 @@ class TestWallaceInvitationpolicy(unittest.TestCase):
self.assertEqual(event.get_summary(), "test2")
self.assertEqual(event.get_attendee(self.jack['mail']).get_participant_status(), kolabformat.PartNeedsAction)
+
def test_004_copy_to_calendar_and_forward(self):
uid = self.send_itip_invitation(self.lucy['mail'], datetime.datetime(2015,2,11, 14,0,0), summary="test forward")
response = self.check_message_received(self.itip_reply_subject % { 'summary':'test forward', 'status':participant_status_label('ACCEPTED') }, self.lucy['mail'], self.lucy['mailbox'])
@@ -1010,6 +1029,22 @@ class TestWallaceInvitationpolicy(unittest.TestCase):
self.assertIsInstance(event, pykolab.xml.Event)
self.assertEqual(event.get_attendee(self.john['mail']).get_participant_status(), kolabformat.PartAccepted)
+ def test_014_per_sender_policy(self):
+ # send invitation from john => REJECT
+ start = datetime.datetime(2015,2,28, 14,0,0)
+ uid = self.send_itip_invitation(self.bill['mail'], start)
+
+ response = self.check_message_received(self.itip_reply_subject % { 'summary':'test', 'status':participant_status_label('DECLINED') }, self.bill['mail'])
+ self.assertIsInstance(response, email.message.Message)
+
+ # send invitation from lucy => SAVE
+ start = datetime.datetime(2015,3,11, 10,0,0)
+ templ = itip_invitation.replace("Doe, John", self.lucy['displayname'])
+ uid = self.send_itip_invitation(self.bill['mail'], start, template=templ, from_addr=self.lucy['mail'])
+
+ event = self.check_user_calendar_event(self.bill['kolabcalendarfolder'], uid)
+ self.assertIsInstance(event, pykolab.xml.Event)
+
def test_020_task_assignment_accept(self):
start = datetime.datetime(2014,9,10, 19,0,0)