mirror of https://github.com/apache/cloudstack.git
marvin_refactor: use _adjust_kwargs for cleaning
_adjust_kwargs is useful for any pre-generation cleaning of **kwargs by factory_boy
This commit is contained in:
parent
a8f7364127
commit
7663f620e0
|
|
@ -32,18 +32,24 @@ class CloudStackBaseFactory(factory.Factory):
|
|||
|
||||
@classmethod
|
||||
def _create(cls, target_class, *args, **kwargs):
|
||||
if "apiclient" in kwargs:
|
||||
if cls.apiclient:
|
||||
members = inspect.getmembers(target_class,
|
||||
predicate=inspect.ismethod)
|
||||
predicate=inspect.ismethod)
|
||||
creators = filter(lambda x: x[0] in CREATORS, members)
|
||||
assert creators, "How do I bring this guy into existence?"
|
||||
assert inspect.ismethod(creators[0][1])
|
||||
creator = creators[0][1]
|
||||
apiclient = kwargs["apiclient"]
|
||||
clean_kwargs = dict((k, v) for k, v in kwargs.iteritems()
|
||||
if k != "apiclient")
|
||||
return creator(apiclient, factory=cls._build(target_class,
|
||||
*args, **clean_kwargs)
|
||||
)
|
||||
return creator(cls.apiclient, factory=cls._build(target_class,
|
||||
*args, **kwargs))
|
||||
else:
|
||||
cls._build(target_class, *args, **kwargs)
|
||||
cls._build(target_class, *args, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def _adjust_kwargs(cls, **kwargs):
|
||||
if "apiclient" in kwargs:
|
||||
cls.apiclient = kwargs["apiclient"]
|
||||
clean_kwargs = dict((k, v) for k, v in kwargs.iteritems()
|
||||
if k != "apiclient")
|
||||
return clean_kwargs
|
||||
else:
|
||||
return kwargs
|
||||
Loading…
Reference in New Issue