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:
Prasanna Santhanam 2013-04-21 12:16:07 +05:30
parent a8f7364127
commit 7663f620e0
1 changed files with 15 additions and 9 deletions

View File

@ -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