def test_create_exercise(self): skill = Skill.objects.get(id=1) grade = skill.grade skill_num_exercise = skill.num_exercises grade_num_exercise = grade.num_exercises exercise = Exercise(question="1+1=", question_type="AN", answer="2", skill=skill) exercise.save() # The number of exercise should increase self.assertEqual(skill.num_exercises, skill_num_exercise + 1) self.assertEqual(grade.num_exercises, grade_num_exercise + 1)
def test_next_exercise(self): exercise = Exercise() graded_exercise = GradedExercise(exercise=exercise) practicer = Practicer(behavior_name='fake', parameters={}) next_exercise = practicer.next_exercise([graded_exercise], None, None) self.assertIsInstance(next_exercise, GradedExercise) self.assertEqual(next_exercise, graded_exercise)
def test_create_exercise(self): skill = Skill.objects.get(id=1) grade = skill.grade skill_num_exercise = skill.num_exercises grade_num_exercise = grade.num_exercises exercise = Exercise(question='1+1=', question_type='AN', answer='2', skill=skill) exercise.save() # The number of exercise should increase self.assertEqual(skill.num_exercises, skill_num_exercise + 1) self.assertEqual(grade.num_exercises, grade_num_exercise + 1)
def test_exercise_from_template(exercise_template_factory, num_workloads, num_sets): exercise_template = exercise_template_factory(workloads=num_workloads, workloads__sets=num_sets) exercise = Exercise.from_template(exercise_template) assert isinstance(exercise, Exercise) workloads = exercise.workloads.all() assert workloads.count() == num_workloads for workload in workloads: assert isinstance(workload, Workload) sets = workload.sets.all() assert sets.count() == num_sets if num_sets != 0: assert isinstance(sets[0], Set)
def create_exercises(self, knowledge_graph): prepared_exercises = [ Exercise(data={ 'question': 'When was Henry VIII of England born?', 'choices': ['1291', '1391', '1491', '1591'], 'correct-answer': '1491' }, semantics={'term-pairs': [['Henry VIII', 'Henry VIII']]}), Exercise( data={ 'question': 'Who was the successor of Henry VIII of England?', 'choices': [ 'Edward VI of England', 'Henry VII of England', 'Elizabeht of York', 'Thomas Cromwell' ], 'correct-answer': 'Edward VI of England' }), Exercise( data={ 'question': 'How many spouses did Henry VII of England have?', 'choices': ['0', '2', '4', '6'], 'correct-answer': '6' }), Exercise( data={ 'question': 'A', 'choices': ['1', '2', '3', '4'], 'correct-answer': '1' }), Exercise( data={ 'question': 'B', 'choices': ['1', '2', '3', '4'], 'correct-answer': '1' }), Exercise( data={ 'question': 'C', 'choices': ['1', '2', '3', '4'], 'correct-answer': '1' }) ] for exercise in prepared_exercises: yield exercise
def bulk_insert(self, request): """ 批量插入答题记录 :return: """ data = request.data records = data['records'] right_ratio = data['right_ratio'] user = User(id=data['user_id']) exercise_card = ExerciseCard(id=data['exercise_card_id']) exercise_card_record = ExerciseCardRecord( user=user, exercise_card=exercise_card, total_time=data['total_time'], right_ratio=right_ratio, ) exercise_card_record.save() for value in records: value.pop('id') delta_time = value['delta_time'] record = Record( is_right=value['is_right'], user_answer=value['user_answer'], delta_time=delta_time, exercise_card_record=exercise_card_record, ) record.user = user record.exercise_card = exercise_card record.exercise = Exercise(id=value['exercise']) record.save() data = ret_data() return JsonResponse(data)
def test_exercise_string_representation(self): exercise = Exercise(number=1) self.assertEqual(str(exercise), 'Programmieraufgabe 1')
def populate(request): rtn_dict = {'success': False, "msg": ""} try: ''' REMOVE ALL ROWS FROM TABLES ''' Exercise.objects.all().delete() Equipment.objects.all().delete() Muscle.objects.all().delete() BodyPart.objects.all().delete() ''' CREATE BODY PARTS ''' print 'creating body parts' body_parts = ["chest", "arm", "core", "leg"] for body_part in body_parts: part = BodyPart(name=body_part) part.save() ''' CREATE MUSCLES ''' print 'creating muscles' chest_muscles = ["pectoral"] arm_muscles = ["bicep", "tricep", "forearm"] leg_muscles = ["calf", "quadracep", "gluteus"] core_muscles = ["abdominals", "back_lower", "back_upper", "lats"] muscles = { "chest": chest_muscles, "arm": arm_muscles, "leg": leg_muscles, "core": core_muscles } for k, v in muscles.items(): for muscle_name in v: body_part = BodyPart.objects.get(name=k) muscle = Muscle(body_part=body_part, name=muscle_name) muscle.save() ''' CREATE EQUIPMENT ''' print 'creating equipment' equipment_list = ["dumbbell", "bench_press", "yoga_mat", "bench", "jump_rope", "treadmill"] for item in equipment_list: equipment = Equipment(name=item) equipment.save() ''' CREATE EXERCISES ''' print 'creating exercises' mu_pectoral = Muscle.objects.get(name="pectoral") mu_bicep = Muscle.objects.get(name="bicep") mu_tricep = Muscle.objects.get(name="tricep") mu_forearm = Muscle.objects.get(name="forearm") mu_calf = Muscle.objects.get(name="calf") mu_quadracep = Muscle.objects.get(name="quadracep") mu_gluteus = Muscle.objects.get(name="gluteus") mu_abdominals = Muscle.objects.get(name="abdominals") mu_back_lower = Muscle.objects.get(name="back_lower") mu_back_upper = Muscle.objects.get(name="back_upper") mu_lats = Muscle.objects.get(name="lats") eq_dumbbell = Equipment.objects.get(name="dumbbell") eq_treadmill = Equipment.objects.get(name="treadmill") eq_jump_rope = Equipment.objects.get(name="jump_rope") eq_bench = Equipment.objects.get(name="bench") eq_bench_press = Equipment.objects.get(name="bench_press") exercise_list = ["bench_press", "decline_press", "run_treadmill", "pushup_wide", "jogging_treadmill", "bicycling", "stairmaster", "jump_rope", "pull_down", "bicep_curl"] bench_press = Exercise(name="bench_press", equipment=eq_bench_press, main_muscle=mu_pectoral) decline_press = Exercise(name="decline_press", equipment=eq_bench_press, main_muscle=mu_pectoral) run_treadmill = Exercise(name="run_treadmill", equipment=eq_treadmill, main_muscle=mu_calf) bicep_curl = Exercise(name="bicep_curl", equipment=eq_dumbbell, main_muscle=mu_bicep) pushup_wide = Exercise(name="pushup_wide", main_muscle=mu_pectoral) jump_rope = Exercise(name="jump_rope", equipment=eq_jump_rope, main_muscle=mu_calf) bench_press.save() decline_press.save() bicep_curl.save() run_treadmill.save() pushup_wide.save() jump_rope.save() rtn_dict['success'] = True rtn_dict['msg'] = 'Successfully populated default exercises, muscles, bodyparts, and equipment' except Exception as e: print 'Error populating exercises, muscles, bodyparts, and equipment: {0}'.format(e) rtn_dict['msg'] = 'Error populating exercises, muscles, bodyparts, and equipment: {0}'.format(e) return HttpResponse(json.dumps(rtn_dict, cls=DjangoJSONEncoder), content_type="application/json")
def test_exercise_cannot_have_negative_number(self): with self.assertRaises(ValidationError): Exercise(number=-1).full_clean()
def test_exercise_cannot_have_number_zero(self): # FieldSmallNumberField includes 0 with self.assertRaises(ValidationError): Exercise(number=0).full_clean()
def test_duplicate_excercises_are_invalid(self): Exercise.objects.create(number=1) with self.assertRaises(ValidationError): Exercise(number=1).full_clean()
def test_default_deadline(self): exercise = Exercise(number=1) self.assertEqual(exercise.deadline, None)
def test_default_release(self): exercise = Exercise(number=1) self.assertEqual(exercise.release, None)
def test_default_description(self): exercise = Exercise(number=1) self.assertEqual(exercise.description, None)