From e1f32e233fe9f07e6b5d6e327d4fa0254a889f52 Mon Sep 17 00:00:00 2001 From: Vincent Jacques Date: Sun, 27 May 2012 13:59:17 +0100 Subject: [PATCH] De-hard-code repository in RepositoryKey. Why is RepositoryKey the *only* class where PATCH and DELETE do not work on self.url? --- src/github/Repository.py | 6 +++--- src/github/RepositoryKey.py | 11 ++++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/github/Repository.py b/src/github/Repository.py index 7ef5c6bc..0c926536 100644 --- a/src/github/Repository.py +++ b/src/github/Repository.py @@ -344,7 +344,7 @@ class Repository( object ): None, post_parameters ) - return RepositoryKey.RepositoryKey( self.__requester, data, completion = NoCompletion ) + return RepositoryKey.RepositoryKey( self.__requester, data, completion = NoCompletion, repoUrl = self.url ) def create_label( self, name, color ): post_parameters = { @@ -697,7 +697,7 @@ class Repository( object ): None, None ) - return RepositoryKey.RepositoryKey( self.__requester, data, completion = NoCompletion ) + return RepositoryKey.RepositoryKey( self.__requester, data, completion = NoCompletion, repoUrl = self.url ) def get_keys( self ): status, headers, data = self.__requester.request( @@ -707,7 +707,7 @@ class Repository( object ): None ) return PaginatedList.PaginatedList( - RepositoryKey.RepositoryKey, + lambda r, d, completion: RepositoryKey.RepositoryKey( r, d, completion, repoUrl = self.url ), self.__requester, headers, data diff --git a/src/github/RepositoryKey.py b/src/github/RepositoryKey.py index b6c7c44c..70d16aab 100644 --- a/src/github/RepositoryKey.py +++ b/src/github/RepositoryKey.py @@ -5,13 +5,18 @@ import PaginatedList from GithubObject import * class RepositoryKey( object ): - def __init__( self, requester, attributes, completion ): + def __init__( self, requester, attributes, completion, repoUrl ): self.__requester = requester self.__initAttributes() self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: self.__complete() # pragma: no cover + self.__repoUrl = repoUrl + + @property + def __customUrl( self ): + return self.__repoUrl + "/keys/" + str( self.id ) @property def id( self ): @@ -41,7 +46,7 @@ class RepositoryKey( object ): def delete( self ): status, headers, data = self.__requester.request( "DELETE", - "https://api.github.com/repos/jacquev6/PyGithub/keys/2626761", + self.__customUrl, None, None ) @@ -55,7 +60,7 @@ class RepositoryKey( object ): post_parameters[ "key" ] = key status, headers, data = self.__requester.request( "PATCH", - "https://api.github.com/repos/jacquev6/PyGithub/keys/2626761", + self.__customUrl, None, post_parameters )