add get_team_by_team_id to teams service (#24783)
This commit is contained in:
@@ -51,6 +51,17 @@ ORGANIZATION_PROTECTED_MODES = (
|
||||
)
|
||||
|
||||
|
||||
def get_team_by_team_id(team_id):
|
||||
"""
|
||||
API Function to lookup team object by team_id, which is globally unique.
|
||||
If there is no such team, return None.
|
||||
"""
|
||||
try:
|
||||
return CourseTeam.objects.get(team_id=team_id)
|
||||
except CourseTeam.DoesNotExist:
|
||||
return None
|
||||
|
||||
|
||||
def get_team_by_discussion(discussion_id):
|
||||
"""
|
||||
This is a function to get team object by the discussion_id passed in.
|
||||
|
||||
@@ -6,10 +6,15 @@ from django.urls import reverse
|
||||
|
||||
class TeamsService(object):
|
||||
""" Functions to provide teams functionality to XBlocks"""
|
||||
|
||||
def get_team(self, user, course_id, topic_id):
|
||||
from . import api
|
||||
return api.get_team_for_user_course_topic(user, course_id, topic_id)
|
||||
|
||||
def get_team_by_team_id(self, team_id):
|
||||
from . import api
|
||||
return api.get_team_by_team_id(team_id)
|
||||
|
||||
def get_team_detail_url(self, team):
|
||||
""" Returns the url to the detail view for the given team """
|
||||
teams_dashboard_url = reverse('teams_dashboard', kwargs={'course_id': team.course_id})
|
||||
|
||||
@@ -102,6 +102,13 @@ class PythonAPITests(SharedModuleStoreTestCase):
|
||||
cls.team1a.add_user(cls.user4)
|
||||
cls.team2a.add_user(cls.user4)
|
||||
|
||||
def test_get_team_by_team_id_non_existence(self):
|
||||
self.assertIsNone(teams_api.get_team_by_team_id('DO_NOT_EXIST'))
|
||||
|
||||
def test_get_team_by_team_id_exists(self):
|
||||
team = teams_api.get_team_by_team_id(self.team1.team_id)
|
||||
self.assertEqual(team, self.team1)
|
||||
|
||||
def test_get_team_by_discussion_non_existence(self):
|
||||
self.assertIsNone(teams_api.get_team_by_discussion('DO_NOT_EXIST'))
|
||||
|
||||
|
||||
@@ -25,6 +25,13 @@ class TeamsServiceTests(ModuleStoreTestCase):
|
||||
CourseEnrollmentFactory.create(user=self.user, course_id=self.course_key)
|
||||
self.team.add_user(self.user)
|
||||
|
||||
def test_get_team_by_team_id(self):
|
||||
team = self.service.get_team_by_team_id('NONEXISTANCE')
|
||||
self.assertIsNone(team)
|
||||
|
||||
team = self.service.get_team_by_team_id(self.team.team_id)
|
||||
self.assertEqual(team, self.team)
|
||||
|
||||
def test_get_team(self):
|
||||
user_team = self.service.get_team(self.user, self.course_key, self.team.topic_id)
|
||||
self.assertEqual(user_team, self.team)
|
||||
|
||||
Reference in New Issue
Block a user