コード例 #1
0
 def test_gen_groups2(self):
     r = Roster(id=1)
     s1 = Student(onecard_id=1, first_name='a')
     s2 = Student(onecard_id=2, first_name='b')
     s3 = Student(onecard_id=3, first_name='c')
     s4 = Student(onecard_id=4, first_name='d')
     s5 = Student(onecard_id=5, first_name='e')
     l = [s1, s2, s3, s4, s5]
     r.students.append(s1)
     r.students.append(s2)
     r.students.append(s3)
     r.students.append(s4)
     r.students.append(s5)
     dt = util.mdy_to_date('09/15/2019')
     start_dt = util.mdy_to_date('09/11/2019')
     gen = GroupGenerator()
     a = gen.create_groups(r, start_dt, dt, attendance_before_gen=False)
     assert len(a) == 2
     g1 = Group(id=1)
     g1.members.append(s1)
     g1.members.append(s2)
     g2 = Group(id=2)
     g2.members.append(s3)
     g2.members.append(s4)
     g2.members.append(s5)
     a = gen.create_groups(r, start_dt, dt, attendance_before_gen=False)
     assert len(a) == 2
コード例 #2
0
 def test_post_roster(self):
     y = 2020
     term = 'fall'
     number = 1
     roster = Roster()
     s1 = Student(first_name='f1', last_name='l1')
     s2 = Student(first_name='f2', last_name='l2')
     roster.students.append(s1)
     roster.students.append(s2)
     sec = Section(year=y, term=term, number=number, roster=roster)
     db.session.add(s1)
     db.session.add(s2)
     db.session.add(roster)
     db.session.add(sec)
     db.session.commit()
     dt = datetime.datetime.now()
     mdy = f'{dt.month}/{dt.day}/{dt.year}'
     students = [{
         'full_name': 'f1 l1',
         'status': 'A',
         'edited': True
     }, {
         'full_name': 'f2 l2',
         'status': 'AO',
         'edited': False
     }]
     response = self.app.post('/rest/rosters',
                              json={
                                  'secId': 1,
                                  'date': mdy,
                                  'students': students
                              })
     assert 200 == response.status_code
コード例 #3
0
    def test_generate_attendance (self):
        end = datetime.date(year=2019, month=8, day=10)
        start = end - datetime.timedelta(days=28)
        incr = datetime.timedelta(days=7)
        s1 = Student(first_name='Chloe', last_name='Smith')
        e1 = AttendanceEntry(date=start, value='P')
        e2 = AttendanceEntry(date=start+incr, value='A')
        e3 = AttendanceEntry(date=start+incr+incr, value='P')
        s1.attendance.append(e1)
        s1.attendance.append(e2)
        s1.attendance.append(e3)

        s2 = Student(first_name='Jill', last_name='Barker')
        e2 = AttendanceEntry(date=start + incr, value='AO')
        e3 = AttendanceEntry(date=start + incr + incr, value='A')
        e4 = AttendanceEntry(date=start + incr + incr + incr, value='A')
        e5 = AttendanceEntry(date=start + incr + incr+ incr+ incr, value='AO')
        s2.attendance.append(e1)
        s2.attendance.append(e2)
        s2.attendance.append(e3)
        s2.attendance.append(e4)
        s2.attendance.append(e5)

        csv_output = AttendanceMgr.generate_attendance([s1, s2], start, end)
        lines = csv_output.split('\n')
        header = lines[0]
        header_items = header.split(',')
        assert header_items[1:] == ['07/13/2019', '07/20/2019', '07/27/2019', '08/03/2019', '08/10/2019']
        assert lines[1] == 'Chloe Smith,,A,,,'
        assert lines[2] == 'Jill Barker,,AO,A,A,AO'
コード例 #4
0
 def test_get_for_date(self):
     y = 2020
     term = 'fall'
     number = 1
     roster = Roster()
     s1 = Student(first_name='f1', last_name='l1')
     roster.students.append(s1)
     sec = Section(year=y, term=term, number=number, roster=roster)
     dt = datetime.datetime.now()
     ae = AttendanceEntry(stud_id=s1.id, date=dt, value='A')
     s1.attendance.append(ae)
     db.session.add(s1)
     db.session.add(ae)
     db.session.add(roster)
     db.session.add(sec)
     db.session.commit()
     response = self.app.get(
         f'/rest/rosters?year={y}&term={term}&number={number}')
     assert 200 == response.status_code
     json_data = response.get_json()
     assert number == json_data['lab_num']
     assert term == json_data['term']
     assert y == json_data['year']
     studs = json_data['students']
     assert studs[0]['first_name'] == 'f1'
     assert studs[0]['last_name'] == 'l1'
     assert studs[0]['status'] == 'A'
コード例 #5
0
ファイル: routes.py プロジェクト: marshall62/partner
def test_insert ():
    fname = request.form.get('fname')
    lname = request.form.get('lname')
    stud = Student(first_name=fname, last_name=lname)
    db.session.add(stud)
    db.session.commit()
    id = stud.id
    return jsonify({'id': id})
コード例 #6
0
ファイル: RosterToDb.py プロジェクト: marshall62/partner
 def find_or_make_student(onecard):
     found = True
     s = Student.query.filter_by(onecard_id=onecard).first()
     if not s:
         found = False
         s = Student(onecard_id=onecard)
         db.session.add(s)
     return s, found
コード例 #7
0
 def test_create_groups2(self):
     r = Roster()
     s1 = Student(onecard_id=1, first_name='a')
     s2 = Student(onecard_id=2, first_name='b')
     s3 = Student(onecard_id=3, first_name='c')
     s4 = Student(onecard_id=4, first_name='d')
     s5 = Student(onecard_id=5, first_name='e')
     s6 = Student(onecard_id=6, first_name='f')
     l = [s1, s2, s3, s4, s5, s6]
     g1 = Group(id=1)
     g1.members.append(s1)
     g1.members.append(s2)
     g2 = Group(id=2)
     g2.members.append(s3)
     g2.members.append(s4)
     g3 = Group(id=3)
     g3.members.append(s5)
     g3.members.append(s6)
     r.students.append(s1)
     r.students.append(s2)
     r.students.append(s3)
     r.students.append(s4)
     r.students.append(s5)
     r.students.append(s6)
     gen = GroupGenerator()
     dt = util.mdy_to_date('09/15/2019')
     start_dt = util.mdy_to_date('09/11/2019')
     gps = gen.create_groups(r, start_dt, dt, attendance_before_gen=True)
     assert 3 == len(gps)
コード例 #8
0
 def test_post_students_missing(self):
     y = 2020
     term = 'fall'
     number = 1
     roster = Roster()
     s1 = Student(first_name='f1', last_name='l1')
     s2 = Student(first_name='f2', last_name='l2')
     roster.students.append(s1)
     roster.students.append(s2)
     sec = Section(year=y, term=term, number=number, roster=roster)
     db.session.add(s1)
     db.session.add(s2)
     db.session.add(roster)
     db.session.add(sec)
     db.session.commit()
     dt = datetime.datetime.now()
     mdy = f'{dt.month}/{dt.day}/{dt.year}'
     response = self.app.post('/rest/rosters',
                              json={
                                  'secId': 1,
                                  'date': mdy
                              })
     assert 200 == response.status_code
コード例 #9
0
 def test_get(self):
     y = 2020
     term = 'fall'
     number = 1
     roster = Roster()
     s1 = Student(first_name='f1', last_name='l1')
     roster.students.append(s1)
     sec = Section(year=y, term=term, number=number, roster=roster)
     db.session.add(s1)
     db.session.add(roster)
     db.session.add(sec)
     db.session.commit()
     response = self.app.get(
         f'/rest/rosters?year={y}&term={term}&number={number}')
     assert 200 == response.status_code
     json_data = response.get_json()
     assert number == json_data['lab_num']
     assert term == json_data['term']
     assert y == json_data['year']
     studs = json_data['students']
     assert studs[0]['first_name'] == 'f1'
     assert studs[0]['last_name'] == 'l1'