Exemplo n.º 1
0
def test_occurrence_dates(session):
    year = datetime.today().year

    event = Event(state='initiated')
    event.timezone = 'Europe/Zurich'
    event.start = tzdatetime(year, 2, 7, 10, 15, 'Europe/Zurich')
    event.end = tzdatetime(year, 2, 7, 16, 00, 'Europe/Zurich')
    event.recurrence = 'RRULE:FREQ=YEARLY;INTERVAL=1;COUNT=5'

    assert len(event.occurrence_dates(limit=False)) == 5

    dates = event.occurrence_dates()
    assert len(dates) == 2
    assert dates[0] == tzdatetime(year, 2, 7, 10, 15, 'Europe/Zurich')
    assert dates[1] == tzdatetime(year + 1, 2, 7, 10, 15, 'Europe/Zurich')
    assert str(dates[0].tzinfo) == 'UTC'
    assert str(dates[1].tzinfo) == 'UTC'

    dates = event.occurrence_dates(localize=True)
    assert len(dates) == 2
    assert dates[0] == tzdatetime(year, 2, 7, 10, 15, 'Europe/Zurich')
    assert dates[1] == tzdatetime(year + 1, 2, 7, 10, 15, 'Europe/Zurich')
    assert str(dates[0].tzinfo) == 'Europe/Zurich'
    assert str(dates[1].tzinfo) == 'Europe/Zurich'

    event.title = 'Event'
    session.add(event)
    transaction.commit()

    event = session.query(Event).one()
    assert len(event.occurrence_dates(limit=False)) == 5

    dates = event.occurrence_dates()
    assert len(dates) == 2
    assert dates[0] == tzdatetime(year, 2, 7, 10, 15, 'Europe/Zurich')
    assert dates[1] == tzdatetime(year + 1, 2, 7, 10, 15, 'Europe/Zurich')
    assert str(dates[0].tzinfo) == 'UTC'
    assert str(dates[1].tzinfo) == 'UTC'

    dates = event.occurrence_dates(localize=True)
    assert len(dates) == 2
    assert dates[0] == tzdatetime(year, 2, 7, 10, 15, 'Europe/Zurich')
    assert dates[1] == tzdatetime(year + 1, 2, 7, 10, 15, 'Europe/Zurich')
    assert str(dates[0].tzinfo) == 'Europe/Zurich'
    assert str(dates[1].tzinfo) == 'Europe/Zurich'
Exemplo n.º 2
0
 def occurrences(form):
     event = Event()
     form.update_model(event)
     return [occurrence.date() for occurrence in event.occurrence_dates()]