예제 #1
0
    def test_func__rights_read_workspace_calendar__fail__as_unauthorized(self):
        lawrence = DBSession.query(User).filter(
            User.email == '*****@*****.**'
        ).one()
        workspace = WorkspaceApi(lawrence).create_workspace(
            'workspace_1',
            save_now=False
        )
        workspace.calendar_enabled = True
        DBSession.flush()

        workspace_calendar_url = CalendarManager.get_workspace_calendar_url(
            workspace.workspace_id
        )

        transaction.commit()

        radicale_base_url = CalendarManager.get_base_url()
        client = caldav.DAVClient(
            radicale_base_url,
            username='******',
            password='******'
        )
        caldav.Calendar(
            parent=client,
            client=client,
            url=workspace_calendar_url
        ).events()
예제 #2
0
 def test_func__radicale_auth__fail__as_john_doe(self):
     radicale_base_url = CalendarManager.get_base_url()
     client = caldav.DAVClient(
         radicale_base_url,
         username='******',
         password='******'
     )
     client.propfind()
예제 #3
0
 def test_func__radicale_auth__ok__as_lawrence(self):
     radicale_base_url = CalendarManager.get_base_url()
     client = caldav.DAVClient(
         radicale_base_url,
         username='******',
         password='******'
     )
     client.propfind()
예제 #4
0
 def test_func__rights_read_user_calendar__ok__as_lawrence(self):
     radicale_base_url = CalendarManager.get_base_url()
     client = caldav.DAVClient(radicale_base_url,
                               username='******',
                               password='******')
     user = DBSession.query(User).filter(
         User.email == '*****@*****.**').one()
     user_calendar_url = CalendarManager.get_user_calendar_url(user.user_id)
     caldav.Calendar(parent=client, client=client,
                     url=user_calendar_url).events()
예제 #5
0
    def test_func__radicale_connectivity__ok__nominal_case(self):
        radicale_base_url = CalendarManager.get_base_url()

        try:
            response = requests.get(radicale_base_url)
            eq_(
                response.status_code, 401, 'Radicale http response should be '
                '401, its {0}'.format(response.status_code))
        except ConnectionError as exc:
            ok_(False, 'Unable to contact radicale on HTTP: {0}'.format(exc))
예제 #6
0
    def test_func__radicale_connectivity__ok__nominal_case(self):
        radicale_base_url = CalendarManager.get_base_url()

        try:
            response = requests.get(radicale_base_url)
            eq_(response.status_code, 401, 'Radicale http response should be '
                                           '401, its {0}'
                .format(response.status_code))
        except ConnectionError as exc:
            ok_(False, 'Unable to contact radicale on HTTP: {0}'.format(exc))
예제 #7
0
 def test_func__rights_read_user_calendar__fail__as_john_doe(self):
     radicale_base_url = CalendarManager.get_base_url()
     client = caldav.DAVClient(radicale_base_url,
                               username='******',
                               password='******')
     other_user = DBSession.query(User).filter(
         User.email == '*****@*****.**').one()
     user_calendar_url = CalendarManager.get_user_calendar_url(
         other_user.user_id)
     caldav.Calendar(parent=client, client=client,
                     url=user_calendar_url).events()
예제 #8
0
    def test_func__event_create__ok__nominal_case(self):
        lawrence = DBSession.query(User).filter(
            User.email == '*****@*****.**'
        ).one()
        radicale_base_url = CalendarManager.get_base_url()
        client = caldav.DAVClient(
            radicale_base_url,
            username='******',
            password='******'
        )
        user_calendar_url = CalendarManager.get_user_calendar_url(
            lawrence.user_id
        )
        user_calendar = caldav.Calendar(
            parent=client,
            client=client,
            url=user_calendar_url
        )

        event_ics = """BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example Corp.//CalDAV Client//EN
BEGIN:VEVENT
UID:1234567890
DTSTAMP:20100510T182145Z
DTSTART:20100512T170000Z
DTEND:20100512T180000Z
SUMMARY:This is an event
LOCATION:Here
END:VEVENT
END:VCALENDAR
"""
        user_calendar.add_event(event_ics)
        user_calendar.save()

        daemons.execute_in_thread('radicale', lambda: transaction.commit())
        # TODO - 20160606 - Bastien: lock should be better here ?
        time.sleep(3)  # Wait for be sure transaction commited in daemon
        transaction.commit()
        try:
            event = DBSession.query(Content) \
                .filter(Content.label == 'This is an event') \
                .filter(Content.owner_id == lawrence.user_id) \
                .filter(Content.id == ContentRevisionRO.content_id) \
                .one()
        except NoResultFound:
            ok_(False, 'Content record should exist for '
                       '"This is an event" label')

        eq_(event.properties['location'], 'Here')
        eq_(event.properties['start'], '2010-05-12 18:00:00+0000')
        eq_(event.properties['end'], '2010-05-12 17:00:00+0000')
예제 #9
0
 def test_func__rights_read_user_calendar__fail__as_john_doe(self):
     radicale_base_url = CalendarManager.get_base_url()
     client = caldav.DAVClient(
         radicale_base_url,
         username='******',
         password='******'
     )
     other_user = DBSession.query(User).filter(
         User.email == '*****@*****.**'
     ).one()
     user_calendar_url = CalendarManager.get_user_calendar_url(other_user.user_id)
     caldav.Calendar(
         parent=client,
         client=client,
         url=user_calendar_url
     ).events()
예제 #10
0
 def test_func__rights_read_user_calendar__ok__as_lawrence(self):
     radicale_base_url = CalendarManager.get_base_url()
     client = caldav.DAVClient(
         radicale_base_url,
         username='******',
         password='******'
     )
     user = DBSession.query(User).filter(
         User.email == '*****@*****.**'
     ).one()
     user_calendar_url = CalendarManager.get_user_calendar_url(user.user_id)
     caldav.Calendar(
         parent=client,
         client=client,
         url=user_calendar_url
     ).events()
예제 #11
0
파일: calendar.py 프로젝트: buxx/tracim
    def index(self):
        # TODO BS 20160720: S'assurer d'être identifié !
        user = tmpl_context.identity.get("user")
        dictified_current_user = Context(CTX.CURRENT_USER).toDict(user)

        fake_api = DictLikeClass(current_user=dictified_current_user)
        user_base_url = CalendarManager.get_user_base_url()
        workspace_base_url = CalendarManager.get_workspace_base_url()
        workspace_calendar_urls = CalendarManager.get_workspace_readable_calendars_urls_for_user(user)
        base_href_url = re.sub(r"^http[s]?://", "", CalendarManager.get_base_url())

        # Template will use User.auth_token, ensure it's validity
        user.ensure_auth_token()

        return DictLikeClass(
            fake_api=fake_api,
            user_base_url=user_base_url,
            workspace_base_url=workspace_base_url,
            workspace_clendar_urls=workspace_calendar_urls,
            auth_token=user.auth_token,
            base_href_url=base_href_url,
        )
예제 #12
0
    def index(self):
        # TODO BS 20160720: S'assurer d'être identifié !
        user = tmpl_context.identity.get('user')
        dictified_current_user = Context(CTX.CURRENT_USER).toDict(user)

        fake_api = DictLikeClass(current_user=dictified_current_user, )
        user_base_url = CalendarManager.get_user_base_url()
        workspace_base_url = CalendarManager.get_workspace_base_url()
        workspace_calendar_urls = CalendarManager\
            .get_workspace_readable_calendars_urls_for_user(user)
        base_href_url = \
            re.sub(r"^http[s]?://", '', CalendarManager.get_base_url())

        # Template will use User.auth_token, ensure it's validity
        user.ensure_auth_token()

        return DictLikeClass(
            fake_api=fake_api,
            user_base_url=user_base_url,
            workspace_base_url=workspace_base_url,
            workspace_clendar_urls=workspace_calendar_urls,
            auth_token=user.auth_token,
            base_href_url=base_href_url,
        )