Esempio n. 1
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. 2
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. 3
0
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)
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)
Esempio n. 5
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. 6
0
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
Esempio n. 7
0
 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
Esempio n. 8
0
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)
Esempio n. 9
0
 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
Esempio n. 10
0
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()