Commit e49f90ed by Mushtaq Ali

Merge pull request #10804 from edx/mushtaq/tnl3825-fix-show-user-course-specific-team

Fix display course specific user teams
parents 33928c50 1d57ef22
...@@ -147,6 +147,49 @@ class TestDashboard(SharedModuleStoreTestCase): ...@@ -147,6 +147,49 @@ class TestDashboard(SharedModuleStoreTestCase):
response = self.client.get(bad_team_url) response = self.client.get(bad_team_url)
self.assertEqual(404, response.status_code) self.assertEqual(404, response.status_code)
def get_user_course_specific_teams_list(self):
"""Gets the list of user course specific teams."""
# Create a course two
course_two = CourseFactory.create(
teams_configuration={
"max_team_size": 1,
"topics": [
{
"name": "Test topic for course two",
"id": 1,
"description": "Description for test topic for course two."
}
]
}
)
# Login and enroll user in both course course
self.client.login(username=self.user.username, password=self.test_password)
CourseEnrollmentFactory.create(user=self.user, course_id=self.course.id)
CourseEnrollmentFactory.create(user=self.user, course_id=course_two.id)
# Create teams in both courses
course_one_team = CourseTeamFactory.create(name="Course one team", course_id=self.course.id, topic_id=1)
course_two_team = CourseTeamFactory.create(name="Course two team", course_id=course_two.id, topic_id=1) # pylint: disable=unused-variable
# Check that initially list of user teams in course one is empty
course_one_teams_url = reverse('teams_dashboard', args=[self.course.id])
response = self.client.get(course_one_teams_url)
self.assertIn('"teams": {"count": 0', response.content)
# Add user to a course one team
course_one_team.add_user(self.user)
# Check that list of user teams in course one is not empty, it is one now
response = self.client.get(course_one_teams_url)
self.assertIn('"teams": {"count": 1', response.content)
# Check that list of user teams in course two is still empty
course_two_teams_url = reverse('teams_dashboard', args=[course_two.id])
response = self.client.get(course_two_teams_url)
self.assertIn('"teams": {"count": 0', response.content)
class TeamAPITestCase(APITestCase, SharedModuleStoreTestCase): class TeamAPITestCase(APITestCase, SharedModuleStoreTestCase):
"""Base class for Team API test cases.""" """Base class for Team API test cases."""
...@@ -372,6 +415,32 @@ class TeamAPITestCase(APITestCase, SharedModuleStoreTestCase): ...@@ -372,6 +415,32 @@ class TeamAPITestCase(APITestCase, SharedModuleStoreTestCase):
data.update({'course_id': self.test_course_1.id}) data.update({'course_id': self.test_course_1.id})
return self.make_call(reverse('teams_list'), expected_status, 'get', data, **kwargs) return self.make_call(reverse('teams_list'), expected_status, 'get', data, **kwargs)
def get_user_course_specific_teams_list(self):
"""Gets the list of user course specific teams."""
# Create and enroll user in both courses
user = self.create_and_enroll_student(
courses=[self.test_course_1, self.test_course_2],
username='test_user_enrolled_both_courses'
)
course_one_data = {'course_id': self.test_course_1.id, 'username': user}
course_two_data = {'course_id': self.test_course_2.id, 'username': user}
# Check that initially list of user teams in course one is empty
team_list = self.get_teams_list(user=user, expected_status=200, data=course_one_data)
self.assertEqual(team_list['count'], 0)
# Add user to a course one team
self.solar_team.add_user(self.users[user])
# Check that list of user teams in course one is not empty now
team_list = self.get_teams_list(user=user, expected_status=200, data=course_one_data)
self.assertEqual(team_list['count'], 1)
# Check that list of user teams in course two is still empty
team_list = self.get_teams_list(user=user, expected_status=200, data=course_two_data)
self.assertEqual(team_list['count'], 0)
def build_team_data(self, name="Test team", course=None, description="Filler description", **kwargs): def build_team_data(self, name="Test team", course=None, description="Filler description", **kwargs):
"""Creates the payload for creating a team. kwargs can be used to specify additional fields.""" """Creates the payload for creating a team. kwargs can be used to specify additional fields."""
data = kwargs data = kwargs
......
...@@ -155,7 +155,7 @@ class TeamsDashboardView(GenericAPIView): ...@@ -155,7 +155,7 @@ class TeamsDashboardView(GenericAPIView):
user = request.user user = request.user
user_teams = CourseTeam.objects.filter(membership__user=user) user_teams = CourseTeam.objects.filter(membership__user=user, course_id=course.id)
user_teams_data = self._serialize_and_paginate( user_teams_data = self._serialize_and_paginate(
MyTeamsPagination, MyTeamsPagination,
user_teams, user_teams,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment