From cec654f7534ed827da2e67f79365f4e328f7efd8 Mon Sep 17 00:00:00 2001 From: Jansen Kantor Date: Thu, 13 Feb 2020 17:16:00 -0500 Subject: [PATCH] two csv upload team-creation bugs (#23036) fix csv-upload bugs --- lms/djangoapps/teams/csv.py | 3 +++ lms/djangoapps/teams/tests/test_views.py | 29 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/lms/djangoapps/teams/csv.py b/lms/djangoapps/teams/csv.py index cde14f8f73..b03b7ae844 100644 --- a/lms/djangoapps/teams/csv.py +++ b/lms/djangoapps/teams/csv.py @@ -292,6 +292,9 @@ class TeamMembershipImportManager(object): topic_id=teamset_id ) team.save() + self.existing_course_teams[(team_name, teamset_id)] = team + else: + team = self.existing_course_teams[(team_name, teamset_id)] team.add_user(user) emit_team_event( 'edx.team.learner_added', diff --git a/lms/djangoapps/teams/tests/test_views.py b/lms/djangoapps/teams/tests/test_views.py index d3bde8f072..e492a38d33 100644 --- a/lms/djangoapps/teams/tests/test_views.py +++ b/lms/djangoapps/teams/tests/test_views.py @@ -1755,6 +1755,10 @@ class TestBulkMembershipManagement(TeamAPITestCase): 201, method='post', data={'csv': csv_file}, user='staff' ) + self.assertEqual( + CourseTeam.objects.filter(name='team 2', course_id=self.test_course_1.id).count(), + 1 + ) def test_upload_non_existing_user(self): csv_content = 'user,mode,topic_0' + '\n' @@ -1765,3 +1769,28 @@ class TestBulkMembershipManagement(TeamAPITestCase): 400, method='post', data={'csv': csv_file}, user='staff' ) + + def test_upload_only_existing_courses(self): + self.create_and_enroll_student(username='a_user') + self.create_and_enroll_student(username='b_user') + existing_team_1 = CourseTeamFactory.create(course_id=self.test_course_1.id, topic_id='topic_1') + existing_team_2 = CourseTeamFactory.create(course_id=self.test_course_1.id, topic_id='topic_2') + + csv_content = 'user,mode,topic_1,topic_2' + '\n' + csv_content += 'a_user, masters,{},{}'.format( + existing_team_1.name, + existing_team_2.name + ) + '\n' + csv_content += 'b_user, masters,{},{}'.format( + existing_team_1.name, + existing_team_2.name + ) + '\n' + csv_file = SimpleUploadedFile('test_file.csv', csv_content.encode('utf8'), content_type='text/csv') + self.client.login(username=self.users['course_staff'].username, password=self.users['course_staff'].password) + self.make_call( + reverse('team_membership_bulk_management', args=[self.good_course_id]), + 201, + method='post', + data={'csv': csv_file}, + user='staff' + )