diff --git a/JsonDescriptionOfGithubApiV3/description.000.human_readable.json b/JsonDescriptionOfGithubApiV3/description.000.human_readable.json index 0018bfec..d2094b78 100644 --- a/JsonDescriptionOfGithubApiV3/description.000.human_readable.json +++ b/JsonDescriptionOfGithubApiV3/description.000.human_readable.json @@ -1,5 +1,16 @@ { "classes": [ + { + "name": "Plan", + "attributes": [ + { "name": "collaborators", "type": "@todo" }, + { "name": "private_repos", "type": "@todo" }, + { "name": "name", "type": "@todo" }, + { "name": "space", "type": "@todo" } + ], + "collections": [ + ] + }, { "name": "AuthenticatedUser", "edit": { @@ -32,7 +43,7 @@ { "name": "login", "type": "string" }, { "name": "name", "type": "string" }, { "name": "owned_private_repos", "type": "@todo" }, - { "name": "plan", "type": "@todo" }, + { "name": "plan", "type": "Plan" }, { "name": "private_gists", "type": "@todo" }, { "name": "public_gists", "type": "@todo" }, { "name": "public_repos", "type": "@todo" }, diff --git a/JsonDescriptionOfGithubApiV3/description.001.normalized.json b/JsonDescriptionOfGithubApiV3/description.001.normalized.json index 3255f724..6fb15ea8 100644 --- a/JsonDescriptionOfGithubApiV3/description.001.normalized.json +++ b/JsonDescriptionOfGithubApiV3/description.001.normalized.json @@ -148,9 +148,9 @@ }, { "type": { - "simple": true, + "simple": false, "cardinality": "scalar", - "name": "@todo" + "name": "Plan" }, "name": "plan" }, @@ -6062,6 +6062,44 @@ } ] }, + { + "attributes": [ + { + "type": { + "simple": true, + "cardinality": "scalar", + "name": "@todo" + }, + "name": "collaborators" + }, + { + "type": { + "simple": true, + "cardinality": "scalar", + "name": "@todo" + }, + "name": "name" + }, + { + "type": { + "simple": true, + "cardinality": "scalar", + "name": "@todo" + }, + "name": "private_repos" + }, + { + "type": { + "simple": true, + "cardinality": "scalar", + "name": "@todo" + }, + "name": "space" + } + ], + "name": "Plan", + "methods": [] + }, { "attributes": [ { diff --git a/NewIntegrationTest.py b/NewIntegrationTest.py index 7a68531f..b6dc1c0d 100644 --- a/NewIntegrationTest.py +++ b/NewIntegrationTest.py @@ -139,7 +139,10 @@ class AuthenticatedUser( TestCase ): self.assertEqual( self.u.login, "jacquev6" ) self.assertEqual( self.u.name, "Vincent Jacques" ) self.assertEqual( self.u.owned_private_repos, 5 ) - ### @todo self.assertEqual( self.u.plan, "" ) + self.assertEqual( self.u.plan.name, "micro" ) + self.assertEqual( self.u.plan.collaborators, 1 ) + self.assertEqual( self.u.plan.space, 614400 ) + self.assertEqual( self.u.plan.private_repos, 5 ) self.assertEqual( self.u.private_gists, 5 ) self.assertEqual( self.u.public_gists, 1 ) self.assertEqual( self.u.public_repos, 10 ) diff --git a/ReferenceOfClasses.md b/ReferenceOfClasses.md index 76df7327..31ac50ea 100644 --- a/ReferenceOfClasses.md +++ b/ReferenceOfClasses.md @@ -32,7 +32,7 @@ Attributes * `login`: string * `name`: string * `owned_private_repos` -* `plan` +* `plan`: `Plan` * `private_gists` * `public_gists` * `public_repos` @@ -749,6 +749,16 @@ Teams * `permission` * `get_teams()`: list of `Team` +Class `Plan` +============ + +Attributes +---------- +* `collaborators` +* `name` +* `private_repos` +* `space` + Class `PullRequest` =================== diff --git a/github/GithubObjects/AuthenticatedUser.py b/github/GithubObjects/AuthenticatedUser.py index 272f1cb4..2bc78f91 100644 --- a/github/GithubObjects/AuthenticatedUser.py +++ b/github/GithubObjects/AuthenticatedUser.py @@ -5,6 +5,7 @@ import PaginatedList import Gist import Repository import NamedUser +import Plan import Organization import UserKey import Issue @@ -608,7 +609,7 @@ class AuthenticatedUser( object ): if "owned_private_repos" in attributes and attributes[ "owned_private_repos" ] is not None: self.__owned_private_repos = attributes[ "owned_private_repos" ] if "plan" in attributes and attributes[ "plan" ] is not None: - self.__plan = attributes[ "plan" ] + self.__plan = Plan.Plan( self.__requester, attributes[ "plan" ], lazy = True ) if "private_gists" in attributes and attributes[ "private_gists" ] is not None: self.__private_gists = attributes[ "private_gists" ] if "public_gists" in attributes and attributes[ "public_gists" ] is not None: diff --git a/github/GithubObjects/Plan.py b/github/GithubObjects/Plan.py new file mode 100644 index 00000000..a425c1c7 --- /dev/null +++ b/github/GithubObjects/Plan.py @@ -0,0 +1,70 @@ +# WARNING: this file is generated automaticaly. +# Do not modify it manually, your work would be lost. + +import PaginatedList +# This allows None as a valid value for an optional parameter + +class DefaultValueForOptionalParametersType: + pass +DefaultValueForOptionalParameters = DefaultValueForOptionalParametersType() + +class Plan( object ): + def __init__( self, requester, attributes, lazy ): + self.__requester = requester + self.__completed = False + self.__initAttributes() + self.__useAttributes( attributes ) + if not lazy: + self.__complete() + + @property + def collaborators( self ): + self.__completeIfNeeded( self.__collaborators ) + return self.__collaborators + + @property + def name( self ): + self.__completeIfNeeded( self.__name ) + return self.__name + + @property + def private_repos( self ): + self.__completeIfNeeded( self.__private_repos ) + return self.__private_repos + + @property + def space( self ): + self.__completeIfNeeded( self.__space ) + return self.__space + + def __initAttributes( self ): + self.__collaborators = None + self.__name = None + self.__private_repos = None + self.__space = None + + def __completeIfNeeded( self, testedAttribute ): + if not self.__completed and testedAttribute is None: + self.__complete() + + # @todo Do not generate __complete if type has no url attribute + def __complete( self ): + status, headers, data = self.__requester.request( + "GET", + self.__url, + None, + None + ) + self.__useAttributes( data ) + self.__completed = True + + def __useAttributes( self, attributes ): + #@todo No need to check if attribute is in attributes when attribute is mandatory + if "collaborators" in attributes and attributes[ "collaborators" ] is not None: + self.__collaborators = attributes[ "collaborators" ] + if "name" in attributes and attributes[ "name" ] is not None: + self.__name = attributes[ "name" ] + if "private_repos" in attributes and attributes[ "private_repos" ] is not None: + self.__private_repos = attributes[ "private_repos" ] + if "space" in attributes and attributes[ "space" ] is not None: + self.__space = attributes[ "space" ] diff --git a/run_tests.sh b/run_tests.sh index 3e6e61a7..3585e71f 100644 --- a/run_tests.sh +++ b/run_tests.sh @@ -1,6 +1,6 @@ #!/bin/sh -rm -f $(find -name "*.pyc") +rm -f $(find . -name "*.pyc") coverage erase coverage run NewIntegrationTest.py