mirror of
https://github.com/status-im/PyGithub.git
synced 2026-09-02 03:41:08 +00:00
Add a Plan class
This commit is contained in:
@@ -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" },
|
||||
|
||||
@@ -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": [
|
||||
{
|
||||
|
||||
@@ -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 )
|
||||
|
||||
+11
-1
@@ -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`
|
||||
===================
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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" ]
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
rm -f $(find -name "*.pyc")
|
||||
rm -f $(find . -name "*.pyc")
|
||||
|
||||
coverage erase
|
||||
coverage run NewIntegrationTest.py
|
||||
|
||||
Reference in New Issue
Block a user