Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 26 additions & 10 deletions runtests.py
Original file line number Diff line number Diff line change
Expand Up @@ -1519,17 +1519,19 @@ def test_006_normal_operation(self):
'/orgs/%s/teams' % self.organization: [
{
"id": 1,
"url": u"%sorganizations/14143/team/1" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"Justice League",
"slug": u"justice-league"
},
{
"id": 12,
"url": u"%sorganizations/14143/team/12" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"The League of Extraordinary Gentlemen and Gentlewomen",
"slug": u"gentlepeople"
}
],
'/organizations/%s/team/1/members' % self.organization: team1members,
'/organizations/%s/team/12/members' % self.organization: team12members
'/organizations/14143/team/1/members': team1members,
'/organizations/14143/team/12/members': team12members
})

with TracContext(self, env=self.tracd_env_debug, **self.trac_env):
Expand Down Expand Up @@ -1702,22 +1704,25 @@ def test_012_hook_membership_event_delete_team(self):
'/orgs/%s/teams' % self.organization: [
{
"id": 1,
"url": u"%sorganizations/14143/team/1" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"Justice League",
"slug": u"justice-league"
},
{
"id": 12,
"url": u"%sorganizations/14143/team/12" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"The League of Extraordinary Gentlemen and Gentlewomen",
"slug": u"gentlepeople"
}
],
'/organizations/%s/team/1/members' % self.organization: team1members,
'/organizations/%s/team/12/members' % self.organization: team12members
'/organizations/14143/team/1/members': team1members,
'/organizations/14143/team/12/members': team12members
})

update = {
"team": {
"id": 1,
"url": u"%sorganizations/14143/team/1" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"Justice League",
"deleted": True
}
Expand All @@ -1740,11 +1745,12 @@ def test_012_hook_membership_event_delete_team(self):
'/orgs/%s/teams' % self.organization: [
{
"id": 12,
"url": u"%sorganizations/14143/team/12" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"The League of Extraordinary Gentlemen and Gentlewomen",
"slug": u"gentlepeople"
}
],
'/organizations/%s/team/12/members' % self.organization: team12members
'/organizations/14143/team/12/members': team12members
})

# Send the delete event
Expand Down Expand Up @@ -1782,6 +1788,7 @@ def test_013_hook_membership_event_delete_nonexistant_team(self):
update = {
"team": {
"id": 1,
"url": u"%sorganizations/14143/team/1" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"Justice League",
"deleted": True
}
Expand Down Expand Up @@ -1809,6 +1816,7 @@ def test_014_hook_membership_event_add_team(self):
update = {
"team": {
"id": 1,
"url": u"%sorganizations/14143/team/1" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"Justice League",
"slug": u"justice-league"
}
Expand All @@ -1825,11 +1833,12 @@ def test_014_hook_membership_event_add_team(self):
'/orgs/%s/teams' % self.organization: [
{
"id": 1,
"url": u"%sorganizations/14143/team/1" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"Justice League",
"slug": u"justice-league"
},
],
'/organizations/%s/team/1/members' % self.organization: team1members,
'/organizations/14143/team/1/members': team1members,
})

# Send the update event
Expand Down Expand Up @@ -1868,16 +1877,18 @@ def test_015_hook_membership_event_add_member(self):
'/orgs/%s/teams' % self.organization: [
{
"id": 1,
"url": u"%sorganizations/14143/team/1" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"Justice League",
"slug": u"justice-league"
},
],
'/organizations/%s/team/1/members' % self.organization: list(team1members)
'/organizations/14143/team/1/members': list(team1members)
})

update = {
"team": {
"id": 1,
"url": u"%sorganizations/14143/team/1" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"Justice League",
"slug": u"justice-league"
}
Expand All @@ -1890,11 +1901,12 @@ def test_015_hook_membership_event_add_member(self):
'/orgs/%s/teams' % self.organization: [
{
"id": 1,
"url": u"%sorganizations/14143/team/1" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"Justice League",
"slug": u"justice-league"
},
],
'/organizations/%s/team/1/members' % self.organization: list(team1members)
'/organizations/14143/team/1/members': list(team1members)
})

# Send the update event
Expand Down Expand Up @@ -1933,16 +1945,18 @@ def test_016_hook_membership_event_remove_member(self):
'/orgs/%s/teams' % self.organization: [
{
"id": 1,
"url": u"%sorganizations/14143/team/1" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"Justice League",
"slug": u"justice-league"
},
],
'/organizations/%s/team/1/members' % self.organization: list(team1members)
'/organizations/14143/team/1/members': list(team1members)
})

update = {
"team": {
"id": 1,
"url": u"%sorganizations/14143/team/1" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"Justice League",
"slug": u"justice-league"
}
Expand All @@ -1955,11 +1969,12 @@ def test_016_hook_membership_event_remove_member(self):
'/orgs/%s/teams' % self.organization: [
{
"id": 1,
"url": u"%sorganizations/14143/team/1" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"Justice League",
"slug": u"justice-league"
},
],
'/organizations/%s/team/1/members' % self.organization: list(team1members)
'/organizations/14143/team/1/members': list(team1members)
})

# Send the update event
Expand Down Expand Up @@ -2072,6 +2087,7 @@ def test_021_hook_membership_event_api_failure(self):
update = {
"team": {
"id": 1,
"url": u"%sorganizations/14143/team/1" % self.tracd_env_debug.get('TRAC_GITHUB_API_URL'),
"name": u"Justice League",
"deleted": True
}
Expand Down
11 changes: 6 additions & 5 deletions tracext/github/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -464,23 +464,23 @@ class GitHubTeam(GitHubUserCollection):
get a list of GitHub login names that are part of this group. To access the
full name of this team, use the `fullname()` method.
"""
def __init__(self, api, env, org, teamid, slug): # pylint: disable=too-many-arguments
def __init__(self, api, env, org, url, slug): # pylint: disable=too-many-arguments
"""
Create a new team.

:param api: the `GitHubGroupsProvider` providing API access
:param env: the `TracEnvironment` context used to cache results
:param org: the name of the organization of the team
:param teamid: the GitHub team ID of the team
:param url: the GitHub API URL of the team
:param slug: the GitHub team shortname in URL representation
"""
self._teamid = teamid
self._url = url
self._orgid = org
fullname = '-'.join(['github', org, slug])
super(GitHubTeam, self).__init__(api, env, fullname)

def _apicall_parameters(self):
return ("organizations/{}/team/{}/members", self._orgid, self._teamid)
return ("{}/members", self._url)

#class GitHubOrgMembers(GitHubUserCollection):
# """
Expand Down Expand Up @@ -527,7 +527,8 @@ def _apicall_parameters(self):
return ("orgs/{}/teams", self._org)

def _apiresult_postprocess(self, json_obj):
return {team['slug']: team['id'] for team in json_obj}
github_api_url = os.environ.get("TRAC_GITHUB_API_URL", "https://api.github.com/").rstrip('/') + '/'
return {team['slug']: team['url'][len(github_api_url):] for team in json_obj}

def _apiresult_error(self):
return {}
Expand Down