Add permissions field to NamedUser (#676)

This commit is contained in:
Iraquitan Cordeiro Filho
2018-01-16 13:52:52 -08:00
committed by Jason White
parent 6bc804dc15
commit 6cfe46b712
3 changed files with 20 additions and 3 deletions
+12
View File
@@ -32,6 +32,7 @@ import github.PaginatedList
import github.Gist
import github.Repository
import github.NamedUser
import github.Permissions
import github.Plan
import github.Organization
import github.Event
@@ -237,6 +238,14 @@ class NamedUser(github.GithubObject.CompletableGithubObject):
self._completeIfNotSet(self._owned_private_repos)
return self._owned_private_repos.value
@property
def permissions(self):
"""
:type: :class:`github.Permissions.Permissions`
"""
self._completeIfNotSet(self._permissions)
return self._permissions.value
@property
def plan(self):
"""
@@ -558,6 +567,7 @@ class NamedUser(github.GithubObject.CompletableGithubObject):
self._name = github.GithubObject.NotSet
self._organizations_url = github.GithubObject.NotSet
self._owned_private_repos = github.GithubObject.NotSet
self._permissions = github.GithubObject.NotSet
self._plan = github.GithubObject.NotSet
self._private_gists = github.GithubObject.NotSet
self._public_gists = github.GithubObject.NotSet
@@ -620,6 +630,8 @@ class NamedUser(github.GithubObject.CompletableGithubObject):
self._organizations_url = self._makeStringAttribute(attributes["organizations_url"])
if "owned_private_repos" in attributes: # pragma no branch
self._owned_private_repos = self._makeIntAttribute(attributes["owned_private_repos"])
if "permissions" in attributes: # pragma no branch
self._permissions = self._makeClassAttribute(github.Permissions.Permissions, attributes["permissions"])
if "plan" in attributes: # pragma no branch
self._plan = self._makeClassAttribute(github.Plan.Plan, attributes["plan"])
if "private_gists" in attributes: # pragma no branch
@@ -50,8 +50,8 @@ None
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
null
200
[('status', '200 OK'), ('x-ratelimit-remaining', '4951'), ('content-length', '590'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"dbf3059a3bb24b8af99793f5204a0a39"'), ('date', 'Sun, 27 May 2012 05:34:29 GMT'), ('content-type', 'application/json; charset=utf-8')]
[{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},{"url":"https://api.github.com/users/Lyloa","avatar_url":"https://secure.gravatar.com/avatar/1517ed584458ccf83e03f5d77d9699d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"1517ed584458ccf83e03f5d77d9699d7","login":"Lyloa","id":1131432}]
[('content-length', '2085'), ('x-runtime-rack', '0.048639'), ('etag', '"23ec009b721d7456726f15f2c6dc5f9d"'), ('status', '200 OK'), ('x-ratelimit-remaining', '4892'), ('x-github-media-type', 'github.v3; format=json'), ('date', 'Thu, 28 Dec 2017 16:31:19 GMT'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1514478935')]
[{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","site_admin":false,"permissions":{"admin":true,"push":true,"pull":true}},{"url":"https://api.github.com/users/Lyloa","avatar_url":"https://secure.gravatar.com/avatar/1517ed584458ccf83e03f5d77d9699d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"1517ed584458ccf83e03f5d77d9699d7","login":"Lyloa","id":1131432,"html_url":"https://github.com/Lyloa","followers_url":"https://api.github.com/users/Lyloa/followers","following_url":"https://api.github.com/users/Lyloa/following{/other_user}","gists_url":"https://api.github.com/users/Lyloa/gists{/gist_id}","starred_url":"https://api.github.com/users/Lyloa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lyloa/subscriptions","organizations_url":"https://api.github.com/users/Lyloa/orgs","repos_url":"https://api.github.com/users/Lyloa/repos","events_url":"https://api.github.com/users/Lyloa/events{/privacy}","received_events_url":"https://api.github.com/users/Lyloa/received_events","type":"User","site_admin":false,"permissions":{"admin":false,"push":true,"pull":true}}]
https
DELETE
+6 -1
View File
@@ -307,7 +307,12 @@ class Repository(Framework.TestCase):
self.assertFalse(self.repo.has_in_collaborators(lyloa))
self.repo.add_to_collaborators(lyloa)
self.assertTrue(self.repo.has_in_collaborators(lyloa))
self.assertListKeyEqual(self.repo.get_collaborators(), lambda u: u.login, ["jacquev6", "Lyloa"])
collaborators = self.repo.get_collaborators()
self.assertListKeyEqual(collaborators, lambda u: u.login, ["jacquev6", "Lyloa"])
jacquev6 = [u for u in collaborators if u.login == "jacquev6"][0]
self.assertTrue(jacquev6.permissions.admin, True)
self.assertTrue(jacquev6.permissions.pull, True)
self.assertTrue(jacquev6.permissions.push, True)
self.repo.remove_from_collaborators(lyloa)
self.assertFalse(self.repo.has_in_collaborators(lyloa))