def get(self): """Handles GET requests.""" student = self.personalize_page_and_get_enrolled() if not student: return self.template_value["navbar"] = {} self.template_value["student"] = student self.template_value["scores"] = get_all_scores(student) self.template_value["student_edit_xsrf_token"] = XsrfTokenManager.create_xsrf_token("student-edit") self.render("student_profile.html")
def get(self): """Handles GET requests.""" student = self.personalize_page_and_get_enrolled() if not student: return self.template_value['navbar'] = {} self.template_value['student'] = student self.template_value['scores'] = get_all_scores(student) self.template_value['student_edit_xsrf_token'] = ( XsrfTokenManager.create_xsrf_token('student-edit')) self.render('student_profile.html')
def test_assessments(self): """Test assessment scores are properly submitted and summarized.""" email = '*****@*****.**' name = 'Test Assessments' pre_answers = [{'foo': 'bar'}, {'Alice': 'Bob'}] pre = { 'assessment_type': 'precourse', 'score': '1.00', 'answers': json.dumps(pre_answers)} mid = {'assessment_type': 'midcourse', 'score': '2.00'} post = {'assessment_type': 'postcourse', 'score': '3.00'} second_mid = {'assessment_type': 'midcourse', 'score': '1.00'} second_post = {'assessment_type': 'postcourse', 'score': '100000'} # Register. actions.login(email) actions.register(self, name) old_namespace = namespace_manager.get_namespace() namespace_manager.set_namespace(self.namespace) try: # Check that no scores exist right now. student = models.Student.get_enrolled_student_by_email(email) assert len(get_all_scores(student)) == 0 # pylint: disable=C6411 # Submit assessments and check the numbers of scores recorded. self.submit_assessment('Pre', pre) student = models.Student.get_enrolled_student_by_email(email) assert len(get_all_scores(student)) == 1 self.submit_assessment('Mid', mid) student = models.Student.get_enrolled_student_by_email(email) assert len(get_all_scores(student)) == 2 self.submit_assessment('Post', post) student = models.Student.get_enrolled_student_by_email(email) # Check final score also includes overall_score. assert len(get_all_scores(student)) == 4 # Check assessment answers. answers = json.loads( models.StudentAnswersEntity.get_by_key_name( student.user_id).data) assert pre_answers == answers['precourse'] # pylint: disable-msg=g-explicit-bool-comparison assert [] == answers['midcourse'] assert [] == answers['postcourse'] # pylint: enable-msg=g-explicit-bool-comparison # Check that scores are recorded properly. student = models.Student.get_enrolled_student_by_email(email) assert int(get_score(student, 'precourse')) == 1 assert int(get_score(student, 'midcourse')) == 2 assert int(get_score(student, 'postcourse')) == 3 assert (int(get_score(student, 'overall_score')) == int((0.30 * 2) + (0.70 * 3))) # Try posting a new midcourse exam with a lower score; # nothing should change. self.submit_assessment('Mid', second_mid) student = models.Student.get_enrolled_student_by_email(email) assert int(get_score(student, 'precourse')) == 1 assert int(get_score(student, 'midcourse')) == 2 assert int(get_score(student, 'postcourse')) == 3 assert (int(get_score(student, 'overall_score')) == int((0.30 * 2) + (0.70 * 3))) # Now try posting a postcourse exam with a higher score and note # the changes. self.submit_assessment('Post', second_post) student = models.Student.get_enrolled_student_by_email(email) assert int(get_score(student, 'precourse')) == 1 assert int(get_score(student, 'midcourse')) == 2 assert int(get_score(student, 'postcourse')) == 100000 assert (int(get_score(student, 'overall_score')) == int((0.30 * 2) + (0.70 * 100000))) finally: namespace_manager.set_namespace(old_namespace)
def test_assessments(self): """Test assessment scores are properly submitted and summarized.""" email = '*****@*****.**' name = 'Test Assessments' pre_answers = [{'foo': 'bar'}, {'Alice': u'Bob (тест данные)'}] pre = { 'assessment_type': 'precourse', 'score': '1.00', 'answers': json.dumps(pre_answers)} mid = {'assessment_type': 'midcourse', 'score': '2.00'} post = {'assessment_type': 'postcourse', 'score': '3.00'} second_mid = {'assessment_type': 'midcourse', 'score': '1.00'} second_post = {'assessment_type': 'postcourse', 'score': '100000'} # Register. actions.login(email) actions.register(self, name) old_namespace = namespace_manager.get_namespace() namespace_manager.set_namespace(self.namespace) try: # Check that no scores exist right now. student = models.Student.get_enrolled_student_by_email(email) assert len(get_all_scores(student)) == 0 # pylint: disable=C6411 # Submit assessments and check the numbers of scores recorded. self.submit_assessment('Pre', pre) student = models.Student.get_enrolled_student_by_email(email) assert len(get_all_scores(student)) == 1 self.submit_assessment('Mid', mid) student = models.Student.get_enrolled_student_by_email(email) assert len(get_all_scores(student)) == 2 self.submit_assessment('Post', post) student = models.Student.get_enrolled_student_by_email(email) # Check final score also includes overall_score. assert len(get_all_scores(student)) == 4 # Check assessment answers. answers = json.loads( models.StudentAnswersEntity.get_by_key_name( student.user_id).data) assert pre_answers == answers['precourse'] # pylint: disable-msg=g-explicit-bool-comparison assert [] == answers['midcourse'] assert [] == answers['postcourse'] # pylint: enable-msg=g-explicit-bool-comparison # Check that scores are recorded properly. student = models.Student.get_enrolled_student_by_email(email) assert int(get_score(student, 'precourse')) == 1 assert int(get_score(student, 'midcourse')) == 2 assert int(get_score(student, 'postcourse')) == 3 assert (int(get_score(student, 'overall_score')) == int((0.30 * 2) + (0.70 * 3))) # Try posting a new midcourse exam with a lower score; # nothing should change. self.submit_assessment('Mid', second_mid) student = models.Student.get_enrolled_student_by_email(email) assert int(get_score(student, 'precourse')) == 1 assert int(get_score(student, 'midcourse')) == 2 assert int(get_score(student, 'postcourse')) == 3 assert (int(get_score(student, 'overall_score')) == int((0.30 * 2) + (0.70 * 3))) # Now try posting a postcourse exam with a higher score and note # the changes. self.submit_assessment('Post', second_post) student = models.Student.get_enrolled_student_by_email(email) assert int(get_score(student, 'precourse')) == 1 assert int(get_score(student, 'midcourse')) == 2 assert int(get_score(student, 'postcourse')) == 100000 assert (int(get_score(student, 'overall_score')) == int((0.30 * 2) + (0.70 * 100000))) finally: namespace_manager.set_namespace(old_namespace)