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
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)
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
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)