Ejemplo n.º 1
0
def test():
    '''
    test interpret_time
    '''
    begin_time = interpret_time("10am")
    end_time = interpret_time("11pm")

    assert (begin_time == "2016-01-01T10:00:00-08:00")
    assert (end_time == "2016-01-01T23:00:00-08:00")
Ejemplo n.º 2
0
def test_interpret_time():
    """
    Testing interspret time function
    """

    sample = "11:20pm"
    arw_output = arrow.get(sample, "h:mma").replace(tzinfo=tz.tzlocal(),
                                                    year=2016).isoformat()
    assert interpret_time(sample) == arw_output
    assert interpret_time(sample, "h:mma") == arw_output
Ejemplo n.º 3
0
def list_events(service, calendar):
    """
    Based on the calendar, return a list of events, events are all the events inside that calendar.
    Each event is represented by a dict.
    """
    logging.debug("Entering list_events")
    logging.debug(
        interpret_time(flask.session['begin_time']) + " " +
        interpret_time(flask.session['end_time']))

    found_events = []
    found_freetimes = []
    days = arrow.Arrow.range('day', arrow.get(flask.session['begin_date']),
                             arrow.get(flask.session['end_date']))

    startHour, startMin = flask.session['begin_time'].split(":")
    endHour, endMin = flask.session['end_time'].split(":")

    for day in days:
        timeMin = day.replace(hour=int(startHour), minute=int(startMin))
        timeMax = day.replace(hour=int(endHour), minute=int(endMin))
        eventList = service.events().list(calendarId=calendar,
                                          singleEvents=True,
                                          timeMin=timeMin,
                                          timeMax=timeMax).execute()["items"]
        temp_day = []
        for event in eventList:
            if "transparency" in event:
                continue
            else:
                if "dateTime" in event["start"]:
                    start = event["start"]["dateTime"]
                    end = event["end"]["dateTime"]
                else:
                    start = event["start"]["date"]
                    end = event["start"]["date"]

                if "description" in event:
                    summary = event["description"]
                else:
                    summary = "(N/A)"

                temp_event = {
                    "start": arrow.get(start).isoformat(),
                    "end": arrow.get(end).isoformat(),
                    "summary": summary
                }

                temp_day.append(temp_event)
                found_events.append(temp_event)

        # if there are no events for current day, grab timeMin to timeMax
        if len(temp_day) == 0:
            hours, minutes, start, end = getDiff(timeMin, timeMax)
            addFreetime(found_freetimes, start, end, hours, minutes)
        else:
            counter = 0
            for event in temp_day:
                # if first event of the day, grab timeMin and start time of current
                if counter == 0:
                    hours, minutes, start, end = getDiff(
                        timeMin, arrow.get(event["start"]))
                    addFreetime(found_freetimes, start, end, hours, minutes)
                    counter = counter + 1
                # if last event of the day, grab end time of current, and timeMax
                if counter == len(temp_day):
                    hours, minutes, start, end = getDiff(
                        arrow.get(event["end"]), timeMax)
                    addFreetime(found_freetimes, start, end, hours, minutes)
                # if it isn't last or first, grab end time of current and start time of next
                else:
                    hours, minutes, start, end = getDiff(
                        arrow.get(event["end"]),
                        arrow.get(temp_day[counter]["start"]))
                    addFreetime(found_freetimes, start, end, hours, minutes)
                    counter = counter + 1

        # logging.debug(found_events)
        # logging.debug(found_freetimes)
    return found_events, found_freetimes
Ejemplo n.º 4
0
def test_in_time_frame():
    """
    Testing in_time_frame function
    """
    fmt = "h:mma"
    start = interpret_time("11:00am", fmt)
    end = interpret_time("1:00pm", fmt)

    #Each case of how the time of events call fall around the boundry times provided by user
    assert in_time_frame(start, end, interpret_time("10:00am", fmt),
                         interpret_time("10:30am", fmt)) == False
    assert in_time_frame(start, end, interpret_time("12:00pm", fmt),
                         interpret_time("2:00pm", fmt)) == True
    assert in_time_frame(start, end, interpret_time("10:00am", fmt),
                         interpret_time("2:00pm", fmt)) == True
    assert in_time_frame(start, end, interpret_time("10:00am", fmt),
                         interpret_time("12:00pm", fmt)) == True
    assert in_time_frame(start, end, interpret_time("12:00pm", fmt),
                         interpret_time("12:30pm", fmt)) == True
    assert in_time_frame(start, end, interpret_time("11:00am", fmt),
                         interpret_time("1:00pm", fmt)) == True