Recurse correctly when filling in default routes
This commit is contained in:
@@ -82,8 +82,6 @@ class MutuallyExclusiveArgList(list):
|
||||
else:
|
||||
self.required = False
|
||||
list.__init__(self, args)
|
||||
# This must go nowhere since it has no arg values of its own
|
||||
self.routes = ()
|
||||
|
||||
|
||||
class Filter(object):
|
||||
|
||||
@@ -28,7 +28,7 @@ import urllib
|
||||
import urlparse
|
||||
from . import Arg, AUTH
|
||||
from .exceptions import AuthError
|
||||
from .util import aggregate_subclass_fields
|
||||
from .util import add_default_routes, aggregate_subclass_fields
|
||||
|
||||
ISO8601 = '%Y-%m-%dT%H:%M:%SZ'
|
||||
|
||||
@@ -60,9 +60,7 @@ class BaseAuth(object):
|
||||
|
||||
def collect_arg_objs(self):
|
||||
arg_objs = aggregate_subclass_fields(self.__class__, 'ARGS')
|
||||
for arg_obj in arg_objs:
|
||||
if arg_obj.routes is None:
|
||||
arg_obj.routes = self.default_routes
|
||||
add_default_routes(arg_objs, self.default_routes)
|
||||
return arg_objs
|
||||
|
||||
def preprocess_arg_objs(self, arg_objs):
|
||||
|
||||
@@ -32,7 +32,7 @@ from .config import Config
|
||||
from .exceptions import ArgumentError
|
||||
from .logging import configure_root_logger
|
||||
from .suite import RequestBuilder
|
||||
from .util import aggregate_subclass_fields
|
||||
from .util import add_default_routes, aggregate_subclass_fields
|
||||
|
||||
class BaseCommand(object):
|
||||
'''
|
||||
@@ -171,9 +171,7 @@ class BaseCommand(object):
|
||||
|
||||
def collect_arg_objs(self):
|
||||
arg_objs = aggregate_subclass_fields(self.__class__, 'ARGS')
|
||||
for arg_obj in arg_objs:
|
||||
if arg_obj.routes is None:
|
||||
arg_obj.routes = self.default_routes
|
||||
add_default_routes(arg_objs, self.default_routes)
|
||||
return arg_objs
|
||||
|
||||
def preprocess_arg_objs(self, arg_objs):
|
||||
|
||||
@@ -26,7 +26,7 @@ import urlparse
|
||||
import weakref
|
||||
|
||||
from .exceptions import ClientError, ServerError, ServiceInitError
|
||||
from .util import aggregate_subclass_fields
|
||||
from .util import add_default_routes, aggregate_subclass_fields
|
||||
|
||||
|
||||
class BaseService(object):
|
||||
@@ -67,9 +67,7 @@ class BaseService(object):
|
||||
|
||||
def collect_arg_objs(self):
|
||||
service_args = aggregate_subclass_fields(self.__class__, 'ARGS')
|
||||
for service_arg in service_args:
|
||||
if service_arg.routes is None:
|
||||
service_arg.routes = self.default_routes
|
||||
add_default_routes(service_args, self.default_routes)
|
||||
if self.auth is not None:
|
||||
auth_args = self.auth.collect_arg_objs()
|
||||
else:
|
||||
|
||||
@@ -13,9 +13,19 @@
|
||||
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
import platform
|
||||
import requestbuilder
|
||||
import requests
|
||||
import sys
|
||||
from . import __version__
|
||||
|
||||
|
||||
def add_default_routes(arglike_obj, default_routes):
|
||||
if isinstance(arglike_obj, requestbuilder.Arg):
|
||||
if arglike_obj.routes is None:
|
||||
arglike_obj.routes = default_routes
|
||||
elif isinstance(arglike_obj, list):
|
||||
# Note that MutuallyExclusiveArgList is a list
|
||||
for item in arglike_obj:
|
||||
add_default_routes(item, default_routes)
|
||||
|
||||
|
||||
def aggregate_subclass_fields(cls, field_name):
|
||||
|
||||
Reference in New Issue
Block a user