Я использую unittest и нос-параметризацию и хочу применить различные декораторы к тесту, основанному на условии.Применить различные декораторы на основе состояния
У меня есть тест, и я хочу пропустить unittest.skip
тест или выполнить его @parameterized.expand(args)
на основе аргументов, переданных аргументам.
Я думаю, мне нужно иметь еще один декоратор, который применяет надлежащий декоратор к тесту, но теперь точно как.
псевдо-код может быть что-то вроде этого:
@validate_data(args)
def test(args):
...
где @validate_data(args)
является декоратор, который применяется, если unittest.skip
арг == None или @parameterized.expand(args)
иначе
Любые комментарии/предложения не ценится.
Поскольку 'parameterized.expand' делает противным' inspect.stack' магии, вы должны будете вернуть функцию, которая будет вызываться из определения класса, а не внутри другой функции. Я обновил ваш ответ, чтобы он работал. –
@DavidWolever, ах! Благодарю. Я не знал, что эта функция сделала :) – ashwinjv