Add role parameter to Team.add_membership method (#638)

This commit is contained in:
James D'Amato
2018-02-07 01:25:24 -08:00
committed by Jason White
parent 5a1424bbc4
commit 01ab4cc6ae
3 changed files with 20 additions and 6 deletions
+15 -2
View File
@@ -125,16 +125,29 @@ class Team(github.GithubObject.CompletableGithubObject):
self.url + "/members/" + member._identity
)
def add_membership(self, member):
def add_membership(self, member, role=github.GithubObject.NotSet):
"""
:calls: `PUT /teams/:id/memberships/:user <http://developer.github.com/v3/orgs/teams>`_
:param member: :class:`github.Nameduser.NamedUser`
:param role: string
:rtype: None
"""
assert isinstance(member, github.NamedUser.NamedUser), member
assert role is github.GithubObject.NotSet or isinstance(
role, (str, unicode)), role
if role is not github.GithubObject.NotSet:
assert role in ['member', 'maintainer']
put_parameters = {
"role": role,
}
else:
put_parameters = {
"role": "member",
}
headers, data = self._requester.requestJsonAndCheck(
"PUT",
self.url + "/memberships/" + member._identity
self.url + "/memberships/" + member._identity,
input=put_parameters
)
def add_to_repos(self, repo):
+3 -3
View File
@@ -102,8 +102,8 @@ PUT
api.github.com
None
/teams/189850/memberships/jacquev6
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
None
{'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
{"role": "maintainer"}
200
[('status', '200 No Content'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sat, 26 May 2012 21:09:55 GMT')]
[('status', '200 OK'), ('x-ratelimit-remaining', '4949'), ('content-length', '151'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"8856425cedbdf3075576e823f39fc3d6"'), ('date', 'Sat, 26 May 2012 21:14:46 GMT'), ('content-type', 'application/json; charset=utf-8')]
[]
+2 -1
View File
@@ -54,7 +54,8 @@ class Team(Framework.TestCase):
self.team.remove_from_members(user)
self.assertListKeyEqual(self.team.get_members(), None, [])
self.assertFalse(self.team.has_in_members(user))
self.team.add_membership(user)
self.team.add_membership(user, "maintainer")
self.assertRaises(AssertionError, self.team.add_membership, user, "admin")
def testRepoPermission(self):
repo = self.org.get_repo("FatherBeaver")