Add a Plan class

This commit is contained in:
Vincent Jacques
2012-05-08 21:27:27 +02:00
parent 6565563412
commit 824b45490d
7 changed files with 140 additions and 7 deletions
@@ -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": [
{
+4 -1
View File
@@ -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
View File
@@ -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`
===================
+2 -1
View File
@@ -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:
+70
View File
@@ -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
View File
@@ -1,6 +1,6 @@
#!/bin/sh
rm -f $(find -name "*.pyc")
rm -f $(find . -name "*.pyc")
coverage erase
coverage run NewIntegrationTest.py