def SchoolFactory(data): # if the school is not secondary, skip it if 'mainlevel_code' in data and data[ 'mainlevel_code'] != 'SECONDARY' and data[ 'mainlevel_code'] != 'MIXED LEVEL': return OtherSchool(**data) else: return School(**data)
def testSchool(self): db.create_all() school = School(name="Duquesne University", location="Pittsburgh, Pennsylvania", gpa=3.24, act=24, sat=1350, grad_rate=78, avg_salary=50000, grad_time=4, school_size=10000) db.session.add(school) db.session.commit()
def initialize_table(): if School.query.first() is None: with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), "app\static\schools.json"), "r") as read_file: school_data = json.load(read_file) for s in school_data: if type(s['scale']) is not list: school = School(name=s['name'], scale=s['scale']) db.session.add(school) db.session.commit() else: scale = s['scale'][0] * 10 + s['scale'][1] school = School(name=s['name'], scale=scale) db.session.add(school) db.session.commit() Grade.query.delete() db.session.commit()
def test_department_in_school(self): s = School(name='tsxy') db.session.add(s) db.session.commit() d = Department(name='cs') d.school = s db.session.add(d) db.session.commit() self.assertTrue(d in s.departments)
def test_teacher_is_school_admin(self): t = Teacher(telephone='13700000001') s = School(name='aschool', admin='13700000001') db.session.add_all([t, s]) db.session.commit() self.assertFalse(t.is_teacher_admin(s.id)) t.schools.append(s) db.session.commit() self.assertTrue(t.is_teacher_admin(s.id))
def test_teacher_is_employ_and_dissmiss(self): t = Teacher(telephone='13700000000') s = School(name='aschool') t.schools.append(s) db.session.add_all([t, s]) db.session.commit() self.assertTrue(t.is_employ(s.id)) t.dismiss_school(s.id) self.assertFalse(t.is_employ(s.id))
def test_school_should_not_be_visible_if_logged_out(self): school = School() school.name = 'hogwarts' db.session.add(school) db.session.commit() response = self.client.get(url_for('main.school', id=school.id), follow_redirects=True) self.assertTrue(re.search(b'Login', response.data))
def test_student_join_school(self): sc = School(name='aschool') st = Student(nickname='astudent') db.session.add_all([sc, st]) db.session.commit() co = Course(course_name='acourse', school_id=sc.id) db.session.add(co) db.session.commit() st.join_school(sc.id) self.assertTrue(st.is_school_joined(sc.id))
def test_teacher_bind_school(self): t = Teacher(telephone='13700000000') s = School(name='aschool') db.session.add_all([t, s]) db.session.commit() Tcode.generate_code(10, s.id) tcode = Tcode.query.all()[0].code t.bind_school(tcode) self.assertTrue(t.schools[0].id == s.id) self.assertTrue(Tcode.query.filter_by(code=tcode).first() is None)
def test_add_teacher(self): s = School(name="Test") u = User(username="******") with self.assertRaises(ValidationError): s.add_teacher(u) u.role = Role.get('Teacher') s.add_teacher(u) db.session.add(s) db.session.commit() self.assertEquals([u], s.teachers.all())
def add_school(): form = SchoolForm() if form.validate_on_submit(): db.session.add(School(name=form.name.data)) flash('школа {} создана'.format(form.name.data)) return redirect(url_for('.schools_list')) return render_template('structure/form_add_edit.html', form=form, class_name='школы', creating=True)
def make_schools(): schools = [ "University of California, Los Angeles", "University of Maryland, College Park", "University of Pennsylvania" ] for school in schools: s = School(name=school) db.session.add(s) db.session.commit()
def test_generate_tcode(self): s = School(name='aschool') db.session.add(s) db.session.commit() Tcode.generate_code(10, s.id) self.assertTrue(s.tcodes.count() == 10) try: Tcode.generate_code(10, s.id) except Exception as e: print("是的,拒绝生成新邀请码") self.assertTrue(s.tcodes.count() == 10)
def test_stats(self, client, db): ni_schools = [School(id=f"NI-{i}") for i in range(10)] be_schools = [School(id="BE-1")] for school in ni_schools + be_schools: db.add(school) db.commit() response = client.get("/stats") assert response.status_code == 200 assert response.json() == [ { "state": "BE", "count": 1 }, { "state": "NI", "count": 10 }, ]
def school_create(): form = SchoolFormCreate() if form.validate_on_submit(): school = School( name=form.name.data, description=form.description.data ) db.session.add(school) db.session.commit() flash('Created and Saved Successfully.', 'alert-success') return redirect(url_for('school_view', id=school.id)) return render_template('basic-forms/school/create.html', title='School Create', form=form)
def fake_school(self): """ 获得一个伪造的学校 :return: 伪造的学校 """ school_name = "逗比中学" school_address = "逗比路" try: school = School.objects.get(name=school_name) except School.DoesNotExist: school = School(name=school_name, address=school_address, region=Region.objects.get(name="其他"), center=True, longitude=0, latitude=0, opened=False) school.save() return school
def test_students_only_returns_students(self): s = School(name="Test") u1 = User(username="******", email='*****@*****.**') u2 = User(username="******", email='*****@*****.**') u3 = User(username="******", email='*****@*****.**') u3.role = Role.get('Teacher') u4 = User(username="******", email='*****@*****.**') u4.role = Role.get('Teacher') s.add_student(u1) s.add_student(u2) s.add_teacher(u3) s.add_teacher(u4) db.session.add(s) db.session.commit() self.assertListEqual([u1, u2], s.students.all())
def add_or_get(db, name): if name in Schools: x = School.query.filter_by(name=name) else: x = Course.query.filter_by(name=name) if len(list(x)) == 0: if name in Schools: temp = School(name=name) else: temp = Course(name=name) db.session.add(temp) x = temp else: try: assert (len(list(x)) == 1) except Exception: raise Exception( 'Something has gone horribly wrong with the database, an admin has been emailed' ) x = x[0] return x
def get_full_school(): return School( id="NW-112586", name="Städt. Gem. Grundschule - Primarstufe -", address="Pfälzer Str. 30-34", city="Köln", email="*****@*****.**", fax="0221355007718", legal_status="in öffentlicher Trägerschaft", phone="022135500770", provider="Stadt Köln", school_type="Grundschule", website="http://www.ggs-pfaelzer-strasse-koeln.de", zip="50677", raw={ "Schulnummer": "112586", "Schulform": "02", "Schulbezeichnung_1": "Städt. Gem. Grundschule", "Schulbezeichnung_2": "- Primarstufe -", "Schulbezeichnung_3": "", "Kurzbezeichnung": "Köln, GG Pfälzer Str.", "PLZ": "50677", "Ort": "Köln", "Strasse": "Pfälzer Str. 30-34", "Telefonvorwahl": "0221", "Telefon": "35500770", "Faxvorwahl": "0221", "Fax": "355007718", "E-Mail": "*****@*****.**", "Homepage": "http://www.ggs-pfaelzer-strasse-koeln.de", "Rechtsform": "1", "Traegernummer": "10182", "Gemeindeschluessel": "05315000", "Schulbetriebsschluessel": "1", "Schulbetriebsdatum": "01.08.1973", "EPSG": "EPSG:25832", "UTMRechtswert": "355389", "UTMHochwert": "5643630", }, )
def test_student_can_ask(self): sc01 = School(name='school01') st01 = Student(nickname='student01') sc02 = School(name='school02') st02 = Student(nickname='student02') sc03 = School(name='school03') st03 = Student(nickname='student03') sc04 = School(name='school04') st04 = Student(nickname='student04') sc05 = School(name='school05') st05 = Student(nickname='student05') db.session.add_all( [sc01, st01, sc02, st02, sc03, st03, sc04, st04, sc05, st05]) db.session.commit() # time True co01 = Course(course_name='acourse01', school_id=sc01.id, nomal_times=0, vip_times=-1) # time False co02 = Course(course_name='acourse02', school_id=sc02.id, nomal_times=0, vip_times=-1) co03 = Course(course_name='acourse03', school_id=sc03.id, nomal_times=0, vip_times=0) co04 = Course(course_name='acourse04', school_id=sc04.id, nomal_times=0, vip_times=1) co05 = Course(course_name='acourse05', school_id=sc05.id, nomal_times=1, vip_times=0) db.session.add_all([co01, co02, co03, co04, co05]) db.session.commit() st01.join_school(sc01.id) st02.join_school(sc02.id) st03.join_school(sc03.id) st04.join_school(sc04.id) st05.join_school(sc05.id) member_info01 = SchoolStudent.query.filter_by( school_id=sc01.id, student_id=st01.id).first() member_info02 = SchoolStudent.query.filter_by( school_id=sc02.id, student_id=st02.id).first() member_info03 = SchoolStudent.query.filter_by( school_id=sc03.id, student_id=st03.id).first() member_info04 = SchoolStudent.query.filter_by( school_id=sc04.id, student_id=st04.id).first() member_info05 = SchoolStudent.query.filter_by( school_id=sc05.id, student_id=st05.id).first() member_info01.vip_expire = datetime.utcnow() + timedelta(days=1) db.session.add(member_info01) db.session.commit() self.assertTrue(st01.can_ask(sc01.id)) member_info02.vip_expire = datetime.utcnow() - timedelta(days=1) db.session.add(member_info02) db.session.commit() self.assertFalse(st02.can_ask(sc02.id)) member_info03.vip_expire = datetime.utcnow() + timedelta(days=1) db.session.add(member_info03) db.session.commit() self.assertFalse(st03.can_ask(sc03.id)) member_info04.vip_expire = datetime.utcnow() + timedelta(days=1) db.session.add(member_info04) db.session.commit() self.assertTrue(st04.can_ask(sc04.id)) member_info05.vip_expire = datetime.utcnow() - timedelta(days=1) db.session.add(member_info05) db.session.commit() self.assertTrue(st05.can_ask(sc05.id)) self.assertFalse(st05.can_ask(sc04.id))
def seed_schools(): montclair = School(name='Montclair State University', logo_id=21, latitude=40.864235224079394, longitude=-74.1985918444289) tcnj = School(name='TCNJ', logo_id=22, latitude=40.268512677240786, longitude=-74.7769878969077) rowan = School(name='Rowan University', logo_id=23, latitude=39.71020663560062, longitude=-75.11956089440088) sch1 = School(logo_id=24, name='Johns Hopkins University', latitude=39.328888, longitude=-76.620277) sch2 = School(logo_id=25, name='Utah Valley University', latitude=40.277779, longitude=-111.713890) sch3 = School(logo_id=26, name='Indiana University of Pennsylvania', latitude=40.617001, longitude=-79.160004) sch4 = School(logo_id=27, name='University of Illinois', latitude=40.110558, longitude=-88.228333) sch5 = School(logo_id=28, name='Massachusetts Institute of Technology', latitude=42.360001, longitude=-71.092003) sch6 = School(logo_id=29, name='Stanford University', latitude=37.428230, longitude=-122.168861) sch7 = School(logo_id=30, name='Harvard University', latitude=42.374443, longitude=-71.116943) sch8 = School(logo_id=31, name='California Institute of Technology', latitude=34.138000, longitude=-118.125000) sch9 = School(logo_id=32, name='University of Chicago', latitude=41.789722, longitude=-87.599724) sch11 = School(logo_id=33, name='Eastern University', latitude=40.051529, longitude=-75.370407) sch12 = School(logo_id=34, name='University of Michigan', latitude=42.278046, longitude=-83.738220) sch13 = School(logo_id=35, name='The University of Massachusetts', latitude=42.391155, longitude=-72.526711) sch14 = School(logo_id=36, name='Penn State University', latitude=40.798214, longitude=-77.859909) sch15 = School(logo_id=37, name='Lawrence University', latitude=44.260445, longitude=-88.397713) sch16 = School(logo_id=38, name='Quinnipiac', latitude=41.421440, longitude=-72.894005) sch18 = School(logo_id=39, name='Villanova University', latitude=40.034901, longitude=-75.337349) sch19 = School(logo_id=40, name='Boise State University', latitude=43.603600, longitude=-116.208710) sch21 = School(logo_id=41, name='University of North Carolina at Chapel Hill', latitude=35.904613, longitude=-79.046761) db.session.bulk_save_objects([ montclair, tcnj, rowan, sch1, sch2, sch3, sch4, sch5, sch6, sch7, sch8, sch9, sch11, sch12, sch13, sch14, sch15, sch16, sch18, sch19, sch21, ]) db.session.commit()
def test_password_salt_are_random(self): u = School(password='******') u2 = School(password='******') self.assertTrue(u.password_hash != u2.password_hash)
def test_password_verification(self): u = School(password='******') self.assertTrue(u.verify_password('cat')) self.assertFalse(u.verify_password('dog'))
def test_no_password_getter(self): u = School(password='******') with self.assertRaises(AttributeError): u.password
def test_password_setter(self): u = School(password='******') self.assertTrue(u.password_hash is not None)
def setUp(self): self.assertTrue(settings.FAKE_SMS_SERVER) # 创建老师 teacher_user = User.objects.create(username=self.teacher_name) teacher_user.password = make_password(self.teacher_password, self.teacher_salt) teacher_user.email = self.teacher_email teacher_user.save() profile = Profile(user=teacher_user, phone=self.teacher_phone) profile.save() teacher = Teacher(user=teacher_user) teacher.save() teacher_group = Group.objects.get(name="老师") teacher_user.groups.add(teacher_group) teacher_user.save() profile.save() teacher.save() teacher_account = Account(user=teacher_user) teacher_account.save() # 为老师创建能力 grade = Grade.objects.get(name="高三") subject = Subject.objects.get(name="英语") ability = Ability.objects.get(grade=grade, subject=subject) teacher.abilities.add(ability) # 设置面试记录 teacher.status = Teacher.INTERVIEW_OK teacher.status_confirm = True # 设置性别 profile.gender = "f" profile.save() # 设置区域 other_region = Region.objects.get(name="其他") teacher.region = other_region # 设置老师级别 teacher_level = Level.objects.all()[0] teacher.level = teacher_level # 为老师创建对应价格 price = Price(region=other_region, ability=ability, level=teacher_level, price=1, salary=2, commission_percentage=3) price.save() # 设置老师名称 teacher.name = self.teacher_name teacher.save() # 创建家长 parent_user = User.objects.create(username=self.parent_name) parent_user.password = make_password(self.parent_password, self.parent_salt) parent_user.email = self.parent_email parent_user.save() parent_profile = Profile(user=parent_user, phone=self.parent_phone) parent_profile.save() parent_group = Group.objects.get(name="家长") parent_user.groups.add(parent_group) parent_user.save() parent_profile.save() parent = Parent(user=parent_user) parent.save() # 创建订单 school = School(name="逗比中学", address="逗比路", region=Region.objects.get(name="其他"), center=True, longitude=0, latitude=0, opened=False) school.save() school.init_prices() # 为老师添加学校 teacher.schools.add(school) order = Order(parent=parent, teacher=teacher, school=school, grade=Grade.objects.get(name="一年级"), subject=Subject.objects.get(name="数学"), coupon=None, price=200, hours=50, total=100, paid_at=make_aware(datetime.datetime.now()), status=Order.PAID) order.save() # 创建订单里的课程 one_time_slot = TimeSlot( order=order, start=make_aware(datetime.datetime(2016, 1, 1, 8, 0, 0)), end=make_aware(datetime.datetime(2016, 1, 1, 10, 0, 0))) one_time_slot.save() one_time_slot = TimeSlot( order=order, start=make_aware(datetime.datetime(2015, 12, 30, 15, 0, 0)), end=make_aware(datetime.datetime(2015, 12, 30, 17, 0, 0))) one_time_slot.save() one_time_slot = TimeSlot( order=order, start=make_aware(datetime.datetime(2015, 12, 20, 11, 0, 0)), end=make_aware(datetime.datetime(2015, 12, 20, 12, 0, 0))) one_time_slot.save() # 检查订单的数目是否正确 order = Order.objects.get(teacher=teacher) self.assertEqual(3, len(order.timeslot_set.filter(deleted=False)))
def somedata(): admin01 = Admin(name='user', password='******') db.session.add(admin01) db.session.commit() school01 = School(name='这是学校01', admin=13700000001) school02 = School(name='这是学校02', admin=13700000004) school03 = School(name='这是学校03', admin=13700000007) teacher01 = Teacher(telephone=13700000001, password='******') teacher02 = Teacher(telephone=13700000002, password='******') teacher03 = Teacher(telephone=13700000003, password='******') teacher04 = Teacher(telephone=13700000004, password='******') teacher05 = Teacher(telephone=13700000005, password='******') teacher06 = Teacher(telephone=13700000006, password='******') teacher07 = Teacher(telephone=13700000007, password='******') teacher08 = Teacher(telephone=13700000008, password='******') teacher09 = Teacher(telephone=13700000009, password='******') teacher01.schools.append(school01) teacher01.schools.append(school02) teacher02.schools.append(school01) teacher02.schools.append(school02) teacher03.schools.append(school02) teacher03.schools.append(school03) teacher04.schools.append(school02) teacher04.schools.append(school03) teacher05.schools.append(school01) teacher05.schools.append(school02) teacher06.schools.append(school01) teacher07.schools.append(school03) teacher08.schools.append(school03) teacher09.schools.append(school01) student01 = Student(telephone=15900000001, password='******') student02 = Student(telephone=15900000002, password='******') student03 = Student(telephone=15900000003, password='******') student04 = Student(telephone=15900000004, password='******') student05 = Student(telephone=15900000005, password='******') student06 = Student(telephone=15900000006, password='******') student07 = Student(telephone=15900000007, password='******') student08 = Student(telephone=15900000008, password='******') student09 = Student(telephone=15900000009, password='******') student10 = Student(telephone=15900000010, password='******') student11 = Student(telephone=15900000011, password='******') student12 = Student(telephone=15900000012, password='******') student13 = Student(telephone=15900000013, password='******') student14 = Student(telephone=15900000014, password='******') student15 = Student(telephone=15900000015, password='******') db.session.add_all([ school01, school02, school03, teacher01, teacher02, teacher03, teacher04, teacher05, teacher06, teacher07, teacher08, teacher09, student01, student02, student03, student04, student05, student06, student07, student08, student09, student10, student11, student12, student13, student14, student15 ]) db.session.commit() course01 = Course(course_name='课程01', school_id=school01.id) course02 = Course(course_name='课程02', school_id=school02.id) course03 = Course(course_name='课程03', school_id=school03.id) db.session.add_all([course01, course02, course03]) db.session.commit() student01.join_school(school01.id) student02.join_school(school01.id) student03.join_school(school01.id) student04.join_school(school01.id) student05.join_school(school01.id) student06.join_school(school02.id) student07.join_school(school02.id) student08.join_school(school02.id) student09.join_school(school02.id) student10.join_school(school02.id) student11.join_school(school03.id) student12.join_school(school03.id) student13.join_school(school03.id) student14.join_school(school03.id) student15.join_school(school03.id)
def create_stub_models(): create_system_roles() create_default_citizenships() create_schedule_times() create_developer() create_bot() role_master = SystemRole.query.filter_by(name=role_master_name).first() user_master = SystemUser(login='******', password='******', system_role=role_master, enabled=True) master = Master(fio='Руководитель Иван Иванович', system_user=user_master) db.session.add(user_master) db.session.add(master) role_teacher = SystemRole.query.filter_by(name=role_teacher_name).first() user_teacher = SystemUser(login='******', password='******', system_role=role_teacher, enabled=True) teacher = Teacher(fio='Учитель Петр Петрович', system_user=user_teacher, phone='89012223344') db.session.add(user_teacher) db.session.add(teacher) school = School(name='школа №42') role_student = SystemRole.query.filter_by(name=role_student_name).first() user_student = SystemUser(login='******', password='******', system_role=role_student, enabled=True) student = Student(fio='Ученик Алексей Алексеевич', system_user=user_student, birth_place='birth place', birth_date='2002-08-31', registration_place='reg place', actual_address='act addr', citizenship_id=1, school=school, grade='1', shift=1, contact_phone=contact_phone_student, phone='89023334455') db.session.add(user_student) db.session.add(student) section1 = Section(name='робо', price=800) section2 = Section(name='веб', price=900) db.session.add(section1) db.session.add(section2) group = Group(name='робо-71', section=section1, teacher=teacher, start_month=8, end_month=16) db.session.add(group) db.session.add( Group(name='веб-61', section=section2, teacher=teacher, start_month=8, end_month=16)) student_in_group = StudentInGroup(student=student, group=group, discount=100, enter_month=8, exit_month=16) db.session.add(student_in_group) db.session.add( Payment(student_in_group=student_in_group, month=9, value=400, comment='comment')) db.session.commit()