Example #1
0
def test_new_instance_cancelled(db, default_account, calendar):
    # Test that if we receive a cancelled override from Google, we save it
    # as an override with cancelled status rather than deleting it.
    event = recurring_event(db, default_account, calendar, TEST_EXDATE_RULE)
    override_uid = event.uid + "_20140814T203000Z"
    override = Event(title='CANCELLED',
                     description='',
                     uid=override_uid,
                     location='',
                     busy=False,
                     read_only=False,
                     reminders='',
                     recurrence=None,
                     start=arrow.get(2014, 8, 14, 22, 15, 00),
                     end=arrow.get(2014, 8, 14, 23, 15, 00),
                     all_day=False,
                     is_owner=False,
                     participants=[],
                     provider_name='inbox',
                     raw_data='',
                     original_start_tz='America/Los_Angeles',
                     original_start_time=arrow.get(2014, 8, 14, 21, 30, 00),
                     master_event_uid=event.uid,
                     cancelled=True,
                     source='local')
    handle_event_updates(default_account.namespace.id,
                         calendar.id,
                         [override], log, db.session)
    db.session.commit()
    # Check the event got saved with the cancelled flag
    find_override = db.session.query(Event).filter_by(
        uid=override_uid, namespace_id=default_account.namespace.id).one()
    assert find_override.cancelled is True
Example #2
0
def test_new_instance_cancelled(db, default_account, calendar):
    # Test that if we receive a cancelled override from Google, we save it
    # as an override with cancelled status rather than deleting it.
    event = recurring_event(db, default_account, calendar, TEST_EXDATE_RULE)
    override_uid = event.uid + "_20140814T203000Z"
    override = Event(title='CANCELLED',
                     description='',
                     uid=override_uid,
                     location='',
                     busy=False,
                     read_only=False,
                     reminders='',
                     recurrence=None,
                     start=arrow.get(2014, 8, 14, 22, 15, 00),
                     end=arrow.get(2014, 8, 14, 23, 15, 00),
                     all_day=False,
                     is_owner=False,
                     participants=[],
                     provider_name='inbox',
                     raw_data='',
                     original_start_tz='America/Los_Angeles',
                     original_start_time=arrow.get(2014, 8, 14, 21, 30, 00),
                     master_event_uid=event.uid,
                     cancelled=True,
                     source='local')
    handle_event_updates(default_account.namespace.id, calendar.id, [override],
                         log, db.session)
    db.session.commit()
    # Check the event got saved with the cancelled flag
    find_override = db.session.query(Event).filter_by(
        uid=override_uid, namespace_id=default_account.namespace.id).one()
    assert find_override.cancelled is True
Example #3
0
def test_master_cancelled(db, default_account, calendar):
    # Test that when the master recurring event is cancelled, we cancel every
    # override too.
    event = recurring_event(db, default_account, calendar, TEST_EXDATE_RULE)
    override = recurring_override(
        db,
        event,
        arrow.get(2014, 9, 4, 20, 30, 0),
        arrow.get(2014, 9, 4, 21, 30, 0),
        arrow.get(2014, 9, 4, 22, 30, 0),
    )

    update = recurring_event(db,
                             default_account,
                             calendar,
                             TEST_EXDATE_RULE,
                             commit=False)
    update.status = "cancelled"
    updates = [update]

    handle_event_updates(default_account.namespace.id, calendar.id, updates,
                         log, db.session)
    db.session.commit()
    find_master = db.session.query(Event).filter_by(uid=event.uid).first()
    assert find_master.status == "cancelled"

    find_override = db.session.query(Event).filter_by(uid=override.uid).first()
    assert find_override.status == "cancelled"
Example #4
0
def test_made_recurring_then_cancelled(db, default_account, calendar):
    # Test that when an event is updated with a recurrence and cancelled at
    # the same time, we cancel it.
    normal = recurring_event(db, default_account, calendar, None)
    # Check this is specifically an Event, not a RecurringEvent
    assert type(normal) == Event

    # Update with a recurrence rule *and* cancellation
    update = recurring_event(db, default_account, calendar, TEST_EXDATE_RULE,
                             commit=False)
    update.status = 'cancelled'
    updates = [update]

    handle_event_updates(default_account.namespace.id,
                         calendar.id,
                         updates, log, db.session)
    db.session.commit()

    find_master = db.session.query(Event).filter_by(uid=normal.uid).first()
    assert find_master.status == 'cancelled'
Example #5
0
def test_made_recurring_then_cancelled(db, default_account, calendar):
    # Test that when an event is updated with a recurrence and cancelled at
    # the same time, we cancel it.
    normal = recurring_event(db, default_account, calendar, None)
    # Check this is specifically an Event, not a RecurringEvent
    assert type(normal) == Event

    # Update with a recurrence rule *and* cancellation
    update = recurring_event(db, default_account, calendar, TEST_EXDATE_RULE,
                             commit=False)
    update.status = 'cancelled'
    updates = [update]

    handle_event_updates(default_account.namespace.id,
                         calendar.id,
                         updates, log, db.session)
    db.session.commit()

    find_master = db.session.query(Event).filter_by(uid=normal.uid).first()
    assert find_master.status == 'cancelled'
Example #6
0
def test_master_cancelled(db, default_account, calendar):
    # Test that when the master recurring event is cancelled, we cancel every
    # override too.
    event = recurring_event(db, default_account, calendar, TEST_EXDATE_RULE)
    override = recurring_override(db, event,
                                  arrow.get(2014, 9, 4, 20, 30, 00),
                                  arrow.get(2014, 9, 4, 21, 30, 00),
                                  arrow.get(2014, 9, 4, 22, 30, 00))

    update = recurring_event(db, default_account, calendar, TEST_EXDATE_RULE,
                             commit=False)
    update.status = 'cancelled'
    updates = [update]

    handle_event_updates(default_account.namespace.id,
                         calendar.id,
                         updates, log, db.session)
    db.session.commit()
    find_master = db.session.query(Event).filter_by(uid=event.uid).first()
    assert find_master.status == 'cancelled'

    find_override = db.session.query(Event).filter_by(uid=override.uid).first()
    assert find_override.status == 'cancelled'
Example #7
0
def test_override_updated(db, default_account, calendar):
    # Test that when a recurring event override is created or updated
    # remotely, we update our override links appropriately.
    event = recurring_event(db, default_account, calendar, TEST_RRULE)
    assert event is not None
    # create a new Event, as if we just got it from Google
    master_uid = event.uid
    override_uid = master_uid + "_20140814T203000Z"
    override = Event(title='new override from google',
                     description='',
                     uid=override_uid,
                     location='',
                     busy=False,
                     read_only=False,
                     reminders='',
                     recurrence=None,
                     start=arrow.get(2014, 8, 14, 22, 30, 00),
                     end=arrow.get(2014, 8, 14, 23, 30, 00),
                     all_day=False,
                     is_owner=False,
                     participants=[],
                     provider_name='inbox',
                     raw_data='',
                     original_start_tz='America/Los_Angeles',
                     original_start_time=arrow.get(2014, 8, 14, 21, 30, 00),
                     master_event_uid=master_uid,
                     source='local')
    handle_event_updates(default_account.namespace.id,
                         calendar.id,
                         [override],
                         log,
                         db.session)
    db.session.commit()
    # Lets see if the event got saved with the right info
    find_override = db.session.query(Event).filter_by(uid=override_uid).one()
    assert find_override is not None
    assert find_override.master_event_id == event.id

    # Update the same override, making sure we don't create two
    override = Event(title='new override from google',
                     description='',
                     uid=override_uid,
                     location='walk and talk',
                     busy=False,
                     read_only=False,
                     reminders='',
                     recurrence=None,
                     start=arrow.get(2014, 8, 14, 22, 15, 00),
                     end=arrow.get(2014, 8, 14, 23, 15, 00),
                     all_day=False,
                     is_owner=False,
                     participants=[],
                     provider_name='inbox',
                     raw_data='',
                     original_start_tz='America/Los_Angeles',
                     original_start_time=arrow.get(2014, 8, 14, 21, 30, 00),
                     master_event_uid=master_uid,
                     source='local')
    handle_event_updates(default_account.namespace.id,
                         calendar.id,
                         [override], log, db.session)
    db.session.commit()
    # Let's see if the event got saved with the right info
    find_override = db.session.query(Event).filter_by(uid=override_uid).one()
    assert find_override is not None
    assert find_override.master_event_id == event.id
    assert find_override.location == 'walk and talk'
Example #8
0
def test_override_updated(db, default_account, calendar):
    # Test that when a recurring event override is created or updated
    # remotely, we update our override links appropriately.
    event = recurring_event(db, default_account, calendar, TEST_RRULE)
    assert event is not None
    # create a new Event, as if we just got it from Google
    master_uid = event.uid
    override_uid = master_uid + "_20140814T203000Z"
    override = Event(title='new override from google',
                     description='',
                     uid=override_uid,
                     location='',
                     busy=False,
                     read_only=False,
                     reminders='',
                     recurrence=None,
                     start=arrow.get(2014, 8, 14, 22, 30, 00),
                     end=arrow.get(2014, 8, 14, 23, 30, 00),
                     all_day=False,
                     is_owner=False,
                     participants=[],
                     provider_name='inbox',
                     raw_data='',
                     original_start_tz='America/Los_Angeles',
                     original_start_time=arrow.get(2014, 8, 14, 21, 30, 00),
                     master_event_uid=master_uid,
                     source='local')
    handle_event_updates(default_account.namespace.id, calendar.id, [override],
                         log, db.session)
    db.session.commit()
    # Lets see if the event got saved with the right info
    find_override = db.session.query(Event).filter_by(uid=override_uid).one()
    assert find_override is not None
    assert find_override.master_event_id == event.id

    # Update the same override, making sure we don't create two
    override = Event(title='new override from google',
                     description='',
                     uid=override_uid,
                     location='walk and talk',
                     busy=False,
                     read_only=False,
                     reminders='',
                     recurrence=None,
                     start=arrow.get(2014, 8, 14, 22, 15, 00),
                     end=arrow.get(2014, 8, 14, 23, 15, 00),
                     all_day=False,
                     is_owner=False,
                     participants=[],
                     provider_name='inbox',
                     raw_data='',
                     original_start_tz='America/Los_Angeles',
                     original_start_time=arrow.get(2014, 8, 14, 21, 30, 00),
                     master_event_uid=master_uid,
                     source='local')
    handle_event_updates(default_account.namespace.id, calendar.id, [override],
                         log, db.session)
    db.session.commit()
    # Let's see if the event got saved with the right info
    find_override = db.session.query(Event).filter_by(uid=override_uid).one()
    assert find_override is not None
    assert find_override.master_event_id == event.id
    assert find_override.location == 'walk and talk'