Created
April 5, 2018 19:41
-
-
Save hallamoore/df2d7bd4f9ab5e9960872417015ecf68 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import gevent | |
| from exchangelib import CalendarItem, EWSDateTime, EWSTimeZone | |
| from nylas.db.sharded.models.account import Account | |
| from nylas.db.sharded.models.session import session_scope_by_shard_id | |
| from nylas.sync.adaptors.ews import EWSSyncAdaptor | |
| with session_scope_by_shard_id(0) as db: | |
| acc = db.query(Account).get(4) # exchange account, test@nilas.com | |
| adaptor = EWSSyncAdaptor(acc) | |
| adaptor.authorize_account() | |
| while True: | |
| tz = EWSTimeZone.localzone() | |
| event = CalendarItem( | |
| folder=adaptor._exlib_account.calendar, | |
| start=tz.localize(EWSDateTime(2018, 4, 6, 10, 0, 0)), | |
| end=tz.localize(EWSDateTime(2018, 4, 6, 11, 0, 0)), | |
| subject='Test Item', | |
| body='hello', | |
| ) | |
| event.save() | |
| print('Saved event, sleeping') | |
| gevent.sleep(1) | |
| event = [x for x in adaptor.fetch([(event.item_id, None)])][0] | |
| assert isinstance(event, CalendarItem) | |
| new_subject = 'New Subject' | |
| event.subject = new_subject | |
| event.save() | |
| print('Saved event with new subject, sleeping') | |
| gevent.sleep(1) | |
| event = [x for x in adaptor.fetch([(event.item_id, None)])][0] | |
| assert isinstance(event, CalendarItem) | |
| assert event.subject == new_subject | |
| old_id = event.item_id | |
| event.delete() | |
| print('Deleted event, sleeping') | |
| gevent.sleep(1) | |
| event = [x for x in adaptor.fetch([(old_id, None)])][0] | |
| assert not isinstance(event, CalendarItem) | |
| print('Completed loop') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment