"""Module for the abstract executable asteex test case."""

from abc import abstractmethod

from asteex.abstract.case import Case


class ExecutionError(Exception):
    """Class for errors raised during the execution."""


class ExecutableCase(Case):
    """Class for a asteex test case that can be executed."""

    @abstractmethod
    async def execute(self, context):
        """Execute the test case.

        :param context: dictionary with string keys.
        :raises: :class:`ExecutionError`.
        """
