def chaos_mode()

in azure-slurm/slurmcc/__init__.py [0:0]


def chaos_mode(func: Callable, action: Optional[Callable] = None) -> Callable:
    def default_action() -> Any:
        raise random.choice(
            [RuntimeError, ValueError, ConnectionError]
        )("Random failure")

    action = action or default_action

    def wrapped(*args: Any, **kwargs: Any) -> Any:
        if is_chaos_mode():
            return action or default_action()

        return func(*args, **kwargs)

    return wrapped