Example #1
0
def test_callable_validation_for_string():
    from os.path import isdir as testfunc
    t.eq(config.validate_callable(-1)("os.path.isdir"), testfunc)

    # invalid values tests
    t.raises(TypeError, config.validate_callable(-1), "")
    t.raises(TypeError, config.validate_callable(-1), "os.path.not_found_func")
    t.raises(TypeError, config.validate_callable(-1), "notfoundmodule.func")
Example #2
0
def test_callable_validation_for_string():
    from os.path import isdir as testfunc
    assert config.validate_callable(-1)("os.path.isdir") == testfunc

    # invalid values tests
    pytest.raises(
        TypeError,
        config.validate_callable(-1), ""
    )
    pytest.raises(
        TypeError,
        config.validate_callable(-1), "os.path.not_found_func"
    )
    pytest.raises(
        TypeError,
        config.validate_callable(-1), "notfoundmodule.func"
    )
Example #3
0
class PreRequest(Setting):
    name = "pre_request"
    section = "Server Hooks"
    validator = validate_callable(2)
    type = six.callable

    def pre_request(worker, req):
        logger.info("PRE-REQUEST => %s %s" % (req.method, req.path))

    default = staticmethod(pre_request)
    desc = """\
Example #4
0
class ClientConnectClosed(Setting):
    name = "post_connect_closed"
    section = "Server Hooks"
    validator = validate_callable(1)
    type = six.callable

    def post_connect_closed(worker):
        pass

    default = staticmethod(post_connect_closed)
    desc = """\
Example #5
0
class ClientConnected(Setting):
    name = "on_connected"
    section = "Server Hooks"
    validator = validate_callable(2)
    type = six.callable

    def on_connected(worker, addr):
        pass

    default = staticmethod(on_connected)
    desc = """\
Example #6
0
class WorkerTerm(Setting):
    name = "worker_term"
    section = "Server Hooks"
    validator = validate_callable(1)
    type = six.callable

    def worker_term(worker):
        pass

    default = staticmethod(worker_term)
    desc = """\
Example #7
0
class WhenReady(Setting):
    name = "when_ready"
    section = "Server Hooks"
    validator = validate_callable(1)
    type = six.callable

    def when_ready(server):
        pass

    default = staticmethod(when_ready)
    desc = """\
Example #8
0
class TDecodeExceptionRaised(Setting):
    name = "on_tdecode_exception"
    section = "Server Hooks"
    validator = validate_callable(1)
    type = six.callable

    def on_tdecode_exception(err):
        pass

    default = staticmethod(on_tdecode_exception)
    desc = """\
Example #9
0
class PreRequestWrapped(PreRequest):
    """
    Represents Gunicorn Middleware's PreRequest Hook
    """
    name = 'pre_request'
    section = 'Server Hooks'
    validator = validate_callable(2)
    type = callable

    # pylint: disable=no-self-argument
    def pre_request(worker, req):
        """
        Runs before process of response.
        """
        if 'SyncWorker' not in type(worker).__name__:
            return

        trace = epsagon.trace.trace_factory.get_or_create_trace()
        trace.prepare()

        if ignore_request('', req.path.lower()):
            return

        # Create a Gunicorn runner with current request.
        try:
            runner = GunicornRunner(time.time(), req)
            trace.set_runner(runner)

            # Collect metadata in case this is a container.
            collect_container_metadata(runner.resource['metadata'])
        # pylint: disable=W0703
        except Exception as exception:
            # Regress to python runner.
            warnings.warn('Could not extract request', EpsagonWarning)
            epsagon.trace.trace_factory.add_exception(exception,
                                                      traceback.format_exc())

    # pylint: disable=no-staticmethod-decorator
    default = staticmethod(pre_request)
    desc = """\