From e97283ae447ee2b2ec0b17b0f3a443ca700a100c Mon Sep 17 00:00:00 2001 From: Nimisha Asthagiri Date: Tue, 9 May 2017 19:44:34 -0400 Subject: [PATCH] Fix column alignment issue when Teams is disabled --- .../instructor_task/tasks_helper/grades.py | 8 ++++-- .../tests/test_tasks_helper.py | 27 ++++++++++++------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/lms/djangoapps/instructor_task/tasks_helper/grades.py b/lms/djangoapps/instructor_task/tasks_helper/grades.py index 0818852f98..69963b001a 100644 --- a/lms/djangoapps/instructor_task/tasks_helper/grades.py +++ b/lms/djangoapps/instructor_task/tasks_helper/grades.py @@ -134,7 +134,8 @@ class _CertificateBulkContext(object): class _TeamBulkContext(object): def __init__(self, context, users): - if context.teams_enabled: + self.enabled = context.teams_enabled + if self.enabled: self.teams_by_user = { membership.user.id: membership.team.name for membership in @@ -326,7 +327,10 @@ class CourseGradeReport(object): """ Returns a list of names of teams in which the given user belongs. """ - return [bulk_teams.teams_by_user.get(user.id, '')] + team_names = [] + if bulk_teams.enabled: + team_names = [bulk_teams.teams_by_user.get(user.id, '')] + return team_names def _user_verification_mode(self, user, context, bulk_enrollments): """ diff --git a/lms/djangoapps/instructor_task/tests/test_tasks_helper.py b/lms/djangoapps/instructor_task/tests/test_tasks_helper.py index b2b18e19ab..88a82f4ecb 100644 --- a/lms/djangoapps/instructor_task/tests/test_tasks_helper.py +++ b/lms/djangoapps/instructor_task/tests/test_tasks_helper.py @@ -96,10 +96,13 @@ class InstructorGradeReportTestCase(TestReportMixin, InstructorTaskCourseTestCas report_store = ReportStore.from_config(config_name='GRADES_DOWNLOAD') report_csv_filename = report_store.links_for(course_id)[0][0] report_path = report_store.path_to(course_id, report_csv_filename) + found_user = False with report_store.storage.open(report_path) as csv_file: for row in unicodecsv.DictReader(csv_file): - if row.get('username') == username: + if row.get('Username') == username: self.assertEqual(row[column_header], expected_cell_content) + found_user = True + self.assertTrue(found_user) @ddt.ddt @@ -301,7 +304,7 @@ class TestInstructorGradeReport(InstructorGradeReportTestCase): user_b.username, course.id, cohort_name_header, - u'Default Group', + u'', ) @patch('lms.djangoapps.instructor_task.tasks_helper.runner._get_current_task') @@ -1229,13 +1232,11 @@ class TestTeamStudentReport(TestReportMixin, InstructorTaskCourseTestCase): """ Run the upload_students_csv task and verify that the correct team was added to the CSV. """ current_task = Mock() current_task.update_state = Mock() - task_input = { - 'features': [ - 'id', 'username', 'name', 'email', 'language', 'location', - 'year_of_birth', 'gender', 'level_of_education', 'mailing_address', - 'goals', 'team' - ] - } + task_input = [ + 'id', 'username', 'name', 'email', 'language', 'location', + 'year_of_birth', 'gender', 'level_of_education', 'mailing_address', + 'goals', 'team' + ] with patch('lms.djangoapps.instructor_task.tasks_helper.runner._get_current_task') as mock_current_task: mock_current_task.return_value = current_task result = upload_students_csv(None, None, self.course.id, task_input, 'calculated') @@ -1243,10 +1244,13 @@ class TestTeamStudentReport(TestReportMixin, InstructorTaskCourseTestCase): report_store = ReportStore.from_config(config_name='GRADES_DOWNLOAD') report_csv_filename = report_store.links_for(self.course.id)[0][0] report_path = report_store.path_to(self.course.id, report_csv_filename) + found_user = False with report_store.storage.open(report_path) as csv_file: for row in unicodecsv.DictReader(csv_file): if row.get('username') == username: self.assertEqual(row['team'], expected_team) + found_user = True + self.assertTrue(found_user) def test_team_column_no_teams(self): self._generate_and_verify_teams_column(self.student1.username, UNAVAILABLE) @@ -1698,11 +1702,14 @@ class TestGradeReportEnrollmentAndCertificateInfo(TestReportMixin, InstructorTas report_store = ReportStore.from_config(config_name='GRADES_DOWNLOAD') report_csv_filename = report_store.links_for(self.course.id)[0][0] report_path = report_store.path_to(self.course.id, report_csv_filename) + found_user = False with report_store.storage.open(report_path) as csv_file: for row in unicodecsv.DictReader(csv_file): - if row.get('username') == username: + if row.get('Username') == username: csv_row_data = [row[column] for column in self.columns_to_check] self.assertEqual(csv_row_data, expected_data) + found_user = True + self.assertTrue(found_user) def _create_user_data(self, user_enroll_mode,