Best Python code snippet using avocado_python
decorators.py
Source:decorators.py  
...55    )56    return signal_on57fail_on = deco_factory("fail", core_exceptions.TestFail)58cancel_on = deco_factory("cancel", core_exceptions.TestCancel)59def _skip_method_decorator(function, message, condition, negate):60    """Creates a skip decorator for a method."""61    @wraps(function)62    def wrapper(obj, *args, **kwargs):  # pylint: disable=W061363        if negate:64            if callable(condition):65                if not condition(obj):66                    raise core_exceptions.TestSkipError(message)67            else:68                if not condition:69                    raise core_exceptions.TestSkipError(message)70        else:71            if callable(condition):72                if condition(obj):73                    raise core_exceptions.TestSkipError(message)74            else:75                if condition:76                    raise core_exceptions.TestSkipError(message)77        return function(obj, *args, **kwargs)78    wrapper.__skip_test_condition__ = condition79    wrapper.__skip_test_condition_negate__ = negate80    return wrapper81def _skip_class_decorator(cls, message, condition, negate):82    """Creates a skip decorator for a class."""83    for key in cls.__dict__:84        if key.startswith("test") and callable(getattr(cls, key)):85            wrapped = _skip_method_decorator(86                getattr(cls, key), message, condition, negate87            )88            setattr(cls, key, wrapped)89    return cls90def _get_skip_method_or_class_decorator(message, condition, negate):91    """Returns a method or class decorator, according to decorated type."""92    def decorator(obj):93        if isinstance(obj, type):94            return _skip_class_decorator(obj, message, condition, negate)95        else:96            return _skip_method_decorator(obj, message, condition, negate)97    return decorator98def skip(message=None):99    """100    Decorator to skip a test.101    :param message: the message given when the test is skipped102    :type message: str103    """104    return _get_skip_method_or_class_decorator(message, True, False)105def skipIf(condition, message=None):106    """107    Decorator to skip a test if a condition is True.108    :param condition: a condition that will be evaluated as either True or109                      False, if it's a callable, it will be called with the110                      class instance as a parameter...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
