J'utilise unittest et nose-parametarized, et je veux appliquer différents décorateurs à un test basé sur une condition.Appliquer différents décorateurs en fonction d'une condition
J'ai un test et je veux passer le test unittest.skip
ou l'exécuter @parameterized.expand(args)
en fonction des arguments passés à args.
Je pense que je dois avoir un autre décorateur qui applique le bon décorateur à l'essai, mais maintenant, comment faire.
Codepseudo pourrait être quelque chose comme ceci:
@validate_data(args)
def test(args):
...
où @validate_data(args)
est un décorateur qui applique unittest.skip
si args == Aucun ou @parameterized.expand(args)
autrement
Les commentaires/suggestions sont appréciés.
Parce que '' parameterized.expand' ne méchant inspect.stack' magique, vous aurez besoin de retourner une fonction qui sera appelée à partir de la définition de classe et pas dans une autre fonction. J'ai mis à jour votre réponse afin que cela fonctionne. –
@DavidWolever, ah! Merci. Je ne savais pas ce que cette fonction a fait :) – ashwinjv