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_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_legal_create_seminar_convenor_is_speaker(): #legal assert isinstance(u, 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=days_before_date(datetime.now(), 3), early_bird=days_before_date(datetime.now(), 2), speaker=u, capacity=10, venue=venue, event=se) s2 = Session(name='s2 test', start_time=datetime.now(), end_time=datetime.now() + timedelta(days=1), deregister_timeframe=days_before_date(datetime.now(), 3), early_bird=days_before_date(datetime.now(), 2), speaker=u, capacity=10, venue=venue, event=se)
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)
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 make_session(slip): session_id = uuid.uuid4().hex user_session = Session(id=session_id, slip_id=slip.id) session["session-id"] = user_session.id db.session.add(user_session) db.session.commit() return user_session
def converter(self, event_type, row): if event_type == 'Course': event = Course(row[0], row[1], row[2], row[3], row[4], row[5],\ row[6], row[7], row[8], row[9], row[10], row[11], row[12]) elif event_type == 'Seminar': event = Seminar(row[0], row[1], row[2], row[3], row[4], row[5],\ row[6], row[7], row[8], row[9], row[10]) else: event = Session(row[0], row[1], row[2], row[3], row[4], row[5], row[6],\ row[7]) return event
def test_legal_create_seminar_multiple_speakers(): #legal way -> seminar with 3 sessions -> 3 guest speakers AND unique convenor assert isinstance(u, 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=days_before_date(datetime.now(), 3), early_bird=days_before_date(datetime.now(), 2), speaker=g1, capacity=10, venue=venue, event=se) s2 = Session(name='s2 test', start_time=datetime.now(), end_time=datetime.now() + timedelta(days=1), deregister_timeframe=days_before_date(datetime.now(), 3), early_bird=days_before_date(datetime.now(), 2), speaker=g2, capacity=10, venue=venue, event=se) s3 = Session(name='s3 test', start_time=datetime.now(), end_time=datetime.now() + timedelta(days=1), deregister_timeframe=days_before_date(datetime.now(), 3), early_bird=days_before_date(datetime.now(), 2), speaker=g3, capacity=10, venue=venue, event=se) assert len(se.event_sessions) == 3 assert isinstance(se.convenor, Staff) assert isinstance(s1.speaker, Guest) assert isinstance(s2.speaker, Guest) assert isinstance(s3.speaker, Guest)
def get_session(self, key): 'return a session given its name' con = lite.connect(os.path.join(self.database_path, 'easybeer.db')) c = con.cursor() c.execute("""select * from sessions where name=:name""", {'name': key}) s = c.fetchone() mis = pickle.loads(s[10]) #malts_in_session' #print('printing mis') #print('mis') ris = pickle.loads(s[11]) #rests in session #print('printing ris') #print(ris) his = pickle.loads(s[12]) #hops in session yis = pickle.loads(s[13]) #yeast in session session = Session(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9], mis, ris, his, yis, s[14], s[15], s[16], s[17], s[18], s[19], s[20], s[21], s[22], s[23], s[24], s[25], s[26], s[27], s[28]) return session
def first_run(): # load user_csv into db with open('./user.csv') as csvfile: reader = csv.DictReader(csvfile) for row in reader: name, zid, email, password, role = row.values() if role == 'trainee': u = Student(id=zid, name=name, password=password, email=email) db.session.add(u) elif role == 'trainer': # add user to db u = Staff(id=zid, name=name, password=password, email=email) db.session.add(u) # add user to db u = Staff(name='Admin', id=1234, password=1234, email='*****@*****.**') db.session.add(u) u.secret_token = '1' db.session.commit() for i in range(0, 5): # add venue to db db.session.add( Venue(name='''venue %d''' % i, location='''location %d''' % i)) v = Venue.query.all()[0] for i in range(0, 3): db.session.add( SeminarEvent(name='''seminar %d''' % i, description='''this is seminar %d''' % i, capacity=60, start_time=datetime.now(), end_time=datetime.now(), convenor=u, venue=v)) # add event to db db.session.add( CourseEvent(name='course 1', description='this is course 1', capacity=60, start_time=datetime.now(), end_time=datetime.now(), convenor=u, venue=v)) s = SeminarEvent.query.all()[0] c = CourseEvent.query.all()[0] for i in range(0, 2): db.session.add( Session(name='''session %d''' % i, start_time=datetime.now(), end_time=datetime.now(), deregister_timeframe=datetime.now(), speaker=u, event=s, capacity=s.capacity)) db.session.add( Session(name='''session %d''' % i, start_time=datetime.now(), end_time=datetime.now(), deregister_timeframe=datetime.now(), speaker=u, event=c, capacity=s.capacity)) db.session.commit() user1 = User.query.all()[-1] session1 = Session.query.all()[0] # user1 want to attend session1 session1.users_attendance.append(user1) # OR # user1.attended_sessions.append(session1) # list all attending users of a session session1.users_attendance # list all attending sessions of a users user1.attended_sessions db.session.commit()