Esempio n. 1
0
def test_legal_register_staff():
    se = SeminarEvent(name='test',
                      description='test',
                      start_time=datetime.now(),
                      end_time=datetime.now(),
                      convenor=u)
    s1 = Session(name='s1 test',
                 start_time=datetime.now(),
                 end_time=datetime.now() + timedelta(days=1),
                 deregister_timeframe=Session.calculate_date(
                     datetime.now(), 1),
                 early_bird=Session.calculate_date(datetime.now(), 1),
                 speaker=u,
                 event=se,
                 capacity=10,
                 venue=venue)
    s2 = Session(name='s2 test',
                 start_time=datetime.now(),
                 end_time=datetime.now() + timedelta(days=1),
                 deregister_timeframe=Session.calculate_date(
                     datetime.now(), 1),
                 early_bird=Session.calculate_date(datetime.now(), 1),
                 speaker=u,
                 event=se,
                 capacity=10,
                 venue=venue)
    s1.add_attendee(u1)
    s2.add_attendee(u1)
    assert len(s1.users_attendance) == 1
    assert len(s2.users_attendance) == 1
Esempio n. 2
0
def test_user_can_only_attend_open_event():
    se = SeminarEvent(name='test',
                      description='test',
                      start_time=datetime.now(),
                      end_time=datetime.now(),
                      convenor=u)
    s1 = Session(name='s1 test',
                 start_time=datetime.now(),
                 end_time=datetime.now() + timedelta(days=1),
                 deregister_timeframe=Session.calculate_date(
                     datetime.now(), 1),
                 early_bird=Session.calculate_date(datetime.now(), 1),
                 speaker=g1,
                 event=se,
                 capacity=10,
                 venue=venue)
    # closed event
    se.status = 1
    with pytest.raises(attendanceError) as err:
        s1.add_attendee(g1)
    assert 'status of the event is closed' in str(err.value)

    # cancelled event
    se.status = 2
    with pytest.raises(attendanceError) as err:
        s1.add_attendee(g1)
    assert 'status of the event is cancelled' in str(err.value)

    # open event
    se.status = 0
    s1.add_attendee(g1)
Esempio n. 3
0
def test_attend_session_early_bird():
    se = SeminarEvent(name='test',
                      description='test',
                      start_time=string_to_date('2018-01-01T09:00'),
                      end_time=string_to_date('2018-12-31T09:00'),
                      convenor=u)
    s1 = Session(name='s1 test',
                 start_time=datetime.now(),
                 end_time=datetime.now() + timedelta(days=2),
                 deregister_timeframe=Session.calculate_date(
                     datetime.now(), 1),
                 speaker=g1,
                 event=se,
                 capacity=10,
                 early_bird=datetime.now() - timedelta(days=1),
                 venue=venue)
    s2 = Session(name='s2 test',
                 start_time=datetime.now(),
                 end_time=datetime.now() + timedelta(days=2),
                 deregister_timeframe=Session.calculate_date(
                     datetime.now(), 1),
                 speaker=g1,
                 event=se,
                 capacity=10,
                 early_bird=datetime.now() + timedelta(days=1),
                 venue=venue)
    assert s1.is_early_bird() == False
    assert s2.is_early_bird() == True
Esempio n. 4
0
def test_user_can_degrestration_prior_to_deregister_timeframe():
    se = SeminarEvent(name='test',
                      description='test',
                      start_time=datetime.now(),
                      end_time=datetime.now(),
                      convenor=u)
    s1 = Session(name='s1 test',
                 start_time=datetime.now(),
                 end_time=datetime.now() + timedelta(days=1),
                 deregister_timeframe=datetime.now() + timedelta(days=1),
                 early_bird=Session.calculate_date(datetime.now(), 1),
                 speaker=g1,
                 event=se,
                 capacity=10,
                 venue=venue)
    s1.add_attendee(g1)
    s1.remove_attendee(g1)

    # user is able to deregister
    s1.deregister_timeframe = datetime.now() - timedelta(days=1)
    db.session.commit()

    # did not attend
    with pytest.raises(attendanceError) as err:
        s1.remove_attendee(g1)
    assert 'user did not attend this session' in str(err.value)

    # deregister within deregister timeframe
    s1.add_attendee(g1)
    with pytest.raises(attendanceError) as err:
        s1.remove_attendee(g1)
    assert 'user cannot deregist within deregister timeframe' in str(err.value)