def test_self_sent_update(db, default_account, message): # Create the calendars add_fake_calendar(db.session, default_account.namespace.id, name="Emailed events", read_only=True) default_calendar = add_fake_calendar(db.session, default_account.namespace.id, name="Calendar", read_only=False) # Import the self-sent event. with open(absolute_path(FIXTURES + "self_sent_v1.ics")) as fd: ics_data = fd.read() msg = add_fake_msg_with_calendar_part(db.session, default_account, ics_data) msg.from_addr = [(default_account.name, default_account.email_address)] import_attached_events(db.session, default_account, msg) db.session.commit() evs = db.session.query(Event).filter( Event.uid == "*****@*****.**").all() assert len(evs) == 1 ev = evs[0] assert ev.location == ("Olympia Hall, 28 Boulevard des Capucines, " "75009 Paris, France") # Create a copy of the event, and store it in the default calendar. event_copy = Event() event_copy.update(ev) event_copy.calendar = default_calendar db.session.add(event_copy) db.session.commit() with open(absolute_path(FIXTURES + "self_sent_v2.ics")) as fd: ics_data = fd.read() msg = add_fake_msg_with_calendar_part(db.session, default_account, ics_data) import_attached_events(db.session, default_account, msg) db.session.commit() evs = db.session.query(Event).filter( Event.uid == "*****@*****.**").all() # Check that the event in the default calendar didn't get updated. assert len(evs) == 2 for ev in evs: db.session.refresh(ev) if ev.calendar_id == default_calendar.id: assert ev.location == ("Olympia Hall, 28 Boulevard des Capucines, " "75009 Paris, France") else: assert ev.location == (u"Le Zenith, 211 Avenue Jean Jaures, " "75019 Paris, France")
def test_self_sent_update(db, default_account, message): # Create the calendars add_fake_calendar(db.session, default_account.namespace.id, name="Emailed events", read_only=True) default_calendar = add_fake_calendar(db.session, default_account.namespace.id, name="Calendar", read_only=False) # Import the self-sent event. with open(absolute_path(FIXTURES + 'self_sent_v1.ics')) as fd: ics_data = fd.read() msg = add_fake_msg_with_calendar_part(db.session, default_account, ics_data) msg.from_addr = [(default_account.name, default_account.email_address)] import_attached_events(db.session, default_account, msg) db.session.commit() evs = db.session.query(Event).filter( Event.uid == "*****@*****.**").all() assert len(evs) == 1 ev = evs[0] assert ev.location == ("Olympia Hall, 28 Boulevard des Capucines, " "75009 Paris, France") # Create a copy of the event, and store it in the default calendar. event_copy = Event() event_copy.update(ev) event_copy.calendar = default_calendar db.session.add(event_copy) db.session.commit() with open(absolute_path(FIXTURES + 'self_sent_v2.ics')) as fd: ics_data = fd.read() msg = add_fake_msg_with_calendar_part( db.session, default_account, ics_data) import_attached_events(db.session, default_account, msg) db.session.commit() evs = db.session.query(Event).filter( Event.uid == "*****@*****.**").all() # Check that the event in the default calendar didn't get updated. assert len(evs) == 2 for ev in evs: db.session.refresh(ev) if ev.calendar_id == default_calendar.id: assert ev.location == ("Olympia Hall, 28 Boulevard des Capucines, " "75009 Paris, France") else: assert ev.location == (u"Le Zenith, 211 Avenue Jean Jaures, " "75019 Paris, France")
def recurring_override_instance(db, master, original_start, start, end): # Returns an Override that has the master's UID, but is not linked yet override_uid = '{}_{}'.format(master.uid, original_start.strftime("%Y%m%dT%H%M%SZ")) ev = db.session.query(Event).filter_by(uid=override_uid).first() if ev: db.session.delete(ev) db.session.commit() ev = Event(original_start_time=original_start, master_event_uid=master.uid, namespace_id=master.namespace_id, calendar_id=master.calendar_id) ev.update(master) ev.uid = override_uid ev.start = start ev.end = end ev.master_event_uid = master.uid db.session.add(ev) return ev