# Source code for nose2.tools.decorators

    """
    This module provides decorators that assist the test author to write tests.
    """

    def with_setup(setup):
        """
        A decorator that sets the :func:`setup` method to be executed before the test.

        It currently works only for function test cases.

        :param setup: The method to be executed before the test.
        :type setup: function
        """

        def decorator(testcase):
            testcase.setup = setup

            return testcase

        return decorator

    def with_teardown(teardown):
        """
        A decorator that sets the :func:`teardown` method to be after before the test.

        It currently works only for function test cases.

        :param teardown: The method to be executed after the test.
        :type teardown: function
        """

        def decorator(testcase):
            testcase.tearDownFunc = teardown

            return testcase

        return decorator