Exemple #1
0
def function2680():
    var3084 = mock.Mock()
    var1229 = helpers.AccessLogger(var3084, '%a')
    var1229.log(None, None, None, None, 0)
    var3084.info.assert_called_with('-', extra={
        'remote_address': '-',
    })
Exemple #2
0
def test_logger_internal_error():
    mock_logger = mock.Mock()
    mock_transport = mock.Mock()
    mock_transport.get_extra_info.return_value = ("127.0.0.3", 0)
    access_logger = helpers.AccessLogger(mock_logger, "%D")
    access_logger.log(None, None, None, mock_transport, 'invalid')
    mock_logger.exception.assert_called_with("Error in logging")
Exemple #3
0
def test_logger_no_message_and_environ():
    mock_logger = mock.Mock()
    mock_transport = mock.Mock()
    mock_transport.get_extra_info.return_value = ("127.0.0.3", 0)
    access_logger = helpers.AccessLogger(mock_logger, "%r %{FOOBAR}e")
    access_logger.log(None, None, None, mock_transport, 0.0)
    mock_logger.info.assert_called_with("- -")
Exemple #4
0
def function668():
    var16 = mock.Mock()
    var4100 = mock.Mock()
    var4100.get_extra_info.return_value = ('127.0.0.3', 0)
    var3104 = helpers.AccessLogger(var16, '%D')
    var3104.log(None, None, None, var4100, 'invalid')
    var16.exception.assert_called_with('Error in logging')
Exemple #5
0
def function1533():
    var3251 = '%{User-Agent}i %{Content-Length}o %{SPAM}e %{None}i'
    var3764 = mock.Mock()
    var1864 = helpers.AccessLogger(var3764, var3251)
    var2416 = mock.Mock(headers={
        'User-Agent': 'Mock/1.0',
    }, version=(1, 1))
    var903 = {
        'SPAM': 'EGGS',
    }
    var2351 = mock.Mock(headers={
        'Content-Length': 123,
    })
    var52 = mock.Mock()
    var52.get_extra_info.return_value = ('127.0.0.2', 1234)
    var1864.log(var2416, var903, var2351, var52, 0.0)
    assert (not var3764.error.called)
    var4348 = 'Mock/1.0 123 EGGS -'
    var3329 = {
        'environ': {
            'SPAM': 'EGGS',
        },
        'request_header': {
            'None': '-',
        },
        'response_header': {
            'Content-Length': 123,
        },
    }
    var3764.info.assert_called_with(var4348, extra=var3329)
Exemple #6
0
    def __init__(
            self,
            *,
            loop=None,
            keep_alive=75,  # NGINX default value is 75 secs
            keep_alive_on=True,
            timeout=0,
            logger=server_logger,
            access_log=None,
            access_log_format=helpers.AccessLogger.LOG_FORMAT,
            debug=False,
            log=None,
            **kwargs):
        super().__init__(loop=loop,
                         disconnect_error=errors.ClientDisconnectedError,
                         **kwargs)

        self._keep_alive_on = keep_alive_on
        self._keep_alive_period = keep_alive  # number of seconds to keep alive
        self._timeout = timeout  # slow request timeout
        self._loop = loop if loop is not None else asyncio.get_event_loop()

        self.logger = log or logger
        self.debug = debug
        self.access_log = access_log
        if access_log:
            self.access_logger = helpers.AccessLogger(access_log,
                                                      access_log_format)
        else:
            self.access_logger = None
Exemple #7
0
def test_access_logger_atoms(mocker):
    mock_datetime = mocker.patch("aiohttp.helpers.datetime")
    mock_getpid = mocker.patch("os.getpid")
    utcnow = datetime.datetime(1843, 1, 1, 0, 0)
    mock_datetime.datetime.utcnow.return_value = utcnow
    mock_getpid.return_value = 42
    log_format = '%a %t %P %l %u %r %s %b %O %T %Tf %D'
    mock_logger = mock.Mock()
    access_logger = helpers.AccessLogger(mock_logger, log_format)
    message = mock.Mock(headers={}, method="GET", path="/path", version=(1, 1))
    environ = {}
    response = mock.Mock(headers={},
                         output_length=123,
                         body_length=42,
                         status=200)
    transport = mock.Mock()
    transport.get_extra_info.return_value = ("127.0.0.2", 1234)
    access_logger.log(message, environ, response, transport, 3.1415926)
    assert not mock_logger.exception.called
    expected = ('127.0.0.2 [01/Jan/1843:00:00:00 +0000] <42> - - '
                'GET /path HTTP/1.1 200 42 123 3 3.141593 3141593')
    extra = {
        'bytes_sent': 123,
        'first_request_line': 'GET /path HTTP/1.1',
        'process_id': '<42>',
        'remote_address': '127.0.0.2',
        'request_time': 3,
        'request_time_frac': '3.141593',
        'request_time_micro': 3141593,
        'response_size': 42,
        'response_status': 200
    }

    mock_logger.info.assert_called_with(expected, extra=extra)
Exemple #8
0
def function1739(arg1359):
    var2042 = arg1359.patch('aiohttp.helpers.datetime')
    var551 = arg1359.patch('os.getpid')
    var2129 = datetime.datetime(1843, 1, 1, 0, 0)
    var2042.datetime.var2129.return_value = var2129
    var551.return_value = 42
    var4239 = '%a %t %P %l %u %r %s %b %T %Tf %D'
    var4323 = mock.Mock()
    var1237 = helpers.AccessLogger(var4323, var4239)
    var4105 = mock.Mock(headers={}, method='GET', path='/path', version=(1, 1))
    var920 = {}
    var1319 = mock.Mock(headers={}, body_length=42, status=200)
    var2498 = mock.Mock()
    var2498.get_extra_info.return_value = ('127.0.0.2', 1234)
    var1237.log(var4105, var920, var1319, var2498, 3.1415926)
    assert (not var4323.exception.called)
    var3908 = '127.0.0.2 [01/Jan/1843:00:00:00 +0000] <42> - - GET /path HTTP/1.1 200 42 3 3.141593 3141593'
    var32 = {
        'first_request_line': 'GET /path HTTP/1.1',
        'process_id': '<42>',
        'remote_address': '127.0.0.2',
        'request_time': 3,
        'request_time_frac': '3.141593',
        'request_time_micro': 3141593,
        'response_size': 42,
        'response_status': 200,
    }
    var4323.info.assert_called_with(var3908, extra=var32)
Exemple #9
0
def test_access_logger_dicts():
    log_format = '%{User-Agent}i %{Content-Length}o %{SPAM}e %{None}i'
    mock_logger = mock.Mock()
    access_logger = helpers.AccessLogger(mock_logger, log_format)
    message = mock.Mock(headers={"User-Agent": "Mock/1.0"}, version=(1, 1))
    environ = {"SPAM": "EGGS"}
    response = mock.Mock(headers={"Content-Length": 123})
    transport = mock.Mock()
    transport.get_extra_info.return_value = ("127.0.0.2", 1234)
    access_logger.log(message, environ, response, transport, 0.0)
    assert not mock_logger.error.called
    expected = 'Mock/1.0 123 EGGS -'
    extra = {
        'environ': {
            'SPAM': 'EGGS'
        },
        'request_header': {
            'None': '-'
        },
        'response_header': {
            'Content-Length': 123
        }
    }

    mock_logger.info.assert_called_with(expected, extra=extra)
Exemple #10
0
def test_access_logger_atoms(mocker):
    utcnow = datetime.datetime(1843, 1, 1, 0, 30)
    mock_datetime = mocker.patch("aiohttp.helpers.datetime.datetime")
    mock_getpid = mocker.patch("os.getpid")
    mock_datetime.utcnow.return_value = utcnow
    mock_getpid.return_value = 42
    log_format = '%a %t %P %r %s %b %T %Tf %D "%{H1}i" "%{H2}i"'
    mock_logger = mock.Mock()
    access_logger = helpers.AccessLogger(mock_logger, log_format)
    request = mock.Mock(headers={'H1': 'a', 'H2': 'b'},
                        method="GET", path_qs="/path",
                        version=(1, 1),
                        remote="127.0.0.2")
    response = mock.Mock(headers={}, body_length=42, status=200)
    access_logger.log(request, response, 3.1415926)
    assert not mock_logger.exception.called
    expected = ('127.0.0.2 [01/Jan/1843:00:29:56 +0000] <42> '
                'GET /path HTTP/1.1 200 42 3 3.141593 3141593 "a" "b"')
    extra = {
        'first_request_line': 'GET /path HTTP/1.1',
        'process_id': '<42>',
        'remote_address': '127.0.0.2',
        'request_start_time': '[01/Jan/1843:00:29:56 +0000]',
        'request_time': 3,
        'request_time_frac': '3.141593',
        'request_time_micro': 3141593,
        'response_size': 42,
        'response_status': 200,
        'request_header': {'H1': 'a', 'H2': 'b'},
    }

    mock_logger.info.assert_called_with(expected, extra=extra)
Exemple #11
0
    def __init__(
            self,
            *,
            loop=None,
            time_service=None,
            keepalive_timeout=75,  # NGINX default value is 75 secs
            tcp_keepalive=True,
            slow_request_timeout=0,
            logger=server_logger,
            access_log=access_logger,
            access_log_format=helpers.AccessLogger.LOG_FORMAT,
            debug=False,
            max_line_size=8190,
            max_headers=32768,
            max_field_size=8190,
            lingering_time=30.0,
            lingering_timeout=5.0,
            **kwargs):

        # process deprecated params
        logger = _get_kwarg(kwargs, 'log', 'logger', logger)

        tcp_keepalive = _get_kwarg(kwargs, 'keep_alive_on', 'tcp_keepalive',
                                   tcp_keepalive)

        keepalive_timeout = _get_kwarg(kwargs, 'keep_alive',
                                       'keepalive_timeout', keepalive_timeout)

        slow_request_timeout = _get_kwarg(kwargs, 'timeout',
                                          'slow_request_timeout',
                                          slow_request_timeout)

        super().__init__(loop=loop,
                         disconnect_error=errors.ClientDisconnectedError,
                         **kwargs)

        self._loop = loop if loop is not None else asyncio.get_event_loop()
        self._time_service = (time_service if time_service is not None else
                              TimeService(self._loop))
        self._tcp_keepalive = tcp_keepalive
        self._keepalive_timeout = keepalive_timeout
        self._slow_request_timeout = slow_request_timeout
        self._lingering_time = float(lingering_time)
        self._lingering_timeout = float(lingering_timeout)

        self._request_parser = aiohttp.HttpRequestParser(
            max_line_size=max_line_size,
            max_field_size=max_field_size,
            max_headers=max_headers)

        self.logger = logger
        self.debug = debug
        self.access_log = access_log
        if access_log:
            self.access_logger = helpers.AccessLogger(access_log,
                                                      access_log_format)
        else:
            self.access_logger = None
        self._closing = False
Exemple #12
0
def test_logger_no_message():
    mock_logger = mock.Mock()
    access_logger = helpers.AccessLogger(mock_logger,
                                         "%r %{content-type}i")
    extra_dict = {
        'first_request_line': '-',
        'request_header': {'content-type': '(no headers)'}
    }

    access_logger.log(None, None, 0.0)
    mock_logger.info.assert_called_with("- (no headers)", extra=extra_dict)
Exemple #13
0
def test_access_logger_unix_socket():
    log_format = '|%a|'
    mock_logger = mock.Mock()
    access_logger = helpers.AccessLogger(mock_logger, log_format)
    request = mock.Mock(headers={"User-Agent": "Mock/1.0"}, version=(1, 1),
                        remote="")
    response = mock.Mock()
    access_logger.log(request, response, 0.0)
    assert not mock_logger.error.called
    expected = '||'
    mock_logger.info.assert_called_with(expected, extra={'remote_address': ''})
Exemple #14
0
def test_access_logger_unix_socket():
    log_format = '|%a|'
    mock_logger = mock.Mock()
    access_logger = helpers.AccessLogger(mock_logger, log_format)
    message = mock.Mock(headers={"User-Agent": "Mock/1.0"}, version=(1, 1))
    environ = {}
    response = mock.Mock()
    transport = mock.Mock()
    transport.get_extra_info.return_value = ""
    access_logger.log(message, environ, response, transport, 0.0)
    assert not mock_logger.error.called
    expected = '||'
    mock_logger.info.assert_called_with(expected, extra={'remote_address': ''})
Exemple #15
0
def test_access_logger_dicts():
    log_format = '%{User-Agent}i %{Content-Length}o %{SPAM}e %{None}i'
    mock_logger = mock.Mock()
    access_logger = helpers.AccessLogger(mock_logger, log_format)
    message = mock.Mock(headers={"USER-AGENT": "Mock/1.0"}, version=(1, 1))
    environ = {"SPAM": "EGGS"}
    response = mock.Mock(headers={"CONTENT-LENGTH": 123})
    transport = mock.Mock()
    transport.get_extra_info.return_value = ("127.0.0.2", 1234)
    access_logger.log(message, environ, response, transport, 0.0)
    assert not mock_logger.error.called
    expected = 'Mock/1.0 123 EGGS -'
    mock_logger.info.assert_called_with(expected)
Exemple #16
0
def test_logger_no_message_and_environ():
    mock_logger = mock.Mock()
    mock_transport = mock.Mock()
    mock_transport.get_extra_info.return_value = ("127.0.0.3", 0)
    access_logger = helpers.AccessLogger(mock_logger,
                                         "%r %{FOOBAR}e %{content-type}i")
    extra_dict = {
        'environ': {'FOOBAR': '-'},
        'first_request_line': '-',
        'request_header': {'content-type': '(no headers)'}
    }

    access_logger.log(None, None, None, mock_transport, 0.0)
    mock_logger.info.assert_called_with("- - (no headers)", extra=extra_dict)
Exemple #17
0
def test_access_logger_dicts():
    log_format = '%{User-Agent}i %{Content-Length}o %{None}i'
    mock_logger = mock.Mock()
    access_logger = helpers.AccessLogger(mock_logger, log_format)
    request = mock.Mock(headers={"User-Agent": "Mock/1.0"}, version=(1, 1),
                        remote="127.0.0.2")
    response = mock.Mock(headers={"Content-Length": 123})
    access_logger.log(request, response, 0.0)
    assert not mock_logger.error.called
    expected = 'Mock/1.0 123 -'
    extra = {
        'request_header': {'None': '-'},
        'response_header': {'Content-Length': 123}
    }

    mock_logger.info.assert_called_with(expected, extra=extra)
Exemple #18
0
def function1280():
    var2583 = mock.Mock()
    var2169 = mock.Mock()
    var2169.get_extra_info.return_value = ('127.0.0.3', 0)
    var829 = helpers.AccessLogger(var2583, '%r %{FOOBAR}e %{content-type}i')
    var2543 = {
        'environ': {
            'FOOBAR': '-',
        },
        'first_request_line': '-',
        'request_header': {
            'content-type': '(no headers)',
        },
    }
    var829.log(None, None, None, var2169, 0.0)
    var2583.info.assert_called_with('- - (no headers)', extra=var2543)
Exemple #19
0
def function64():
    var771 = '|%a|'
    var1466 = mock.Mock()
    var305 = helpers.AccessLogger(var1466, var771)
    var1375 = mock.Mock(headers={
        'User-Agent': 'Mock/1.0',
    }, version=(1, 1))
    var2441 = {}
    var3250 = mock.Mock()
    var3054 = mock.Mock()
    var3054.get_extra_info.return_value = ''
    var305.log(var1375, var2441, var3250, var3054, 0.0)
    assert (not var1466.error.called)
    var804 = '||'
    var1466.info.assert_called_with(var804, extra={
        'remote_address': '',
    })
Exemple #20
0
def test_access_logger_atoms(mock_getpid, mock_datetime):
    utcnow = datetime.datetime(1843, 1, 1, 0, 0)
    mock_datetime.datetime.utcnow.return_value = utcnow
    mock_getpid.return_value = 42
    log_format = '%a %t %P %l %u %r %s %b %O %T %Tf %D'
    mock_logger = mock.Mock()
    access_logger = helpers.AccessLogger(mock_logger, log_format)
    message = mock.Mock(headers={}, method="GET", path="/path", version=(1, 1))
    environ = {}
    response = mock.Mock(headers={},
                         output_length=123,
                         body_length=42,
                         status=200)
    transport = mock.Mock()
    transport.get_extra_info.return_value = ("127.0.0.2", 1234)
    access_logger.log(message, environ, response, transport, 3.1415926)
    assert not mock_logger.exception.called
    expected = ('127.0.0.2 [01/Jan/1843:00:00:00 +0000] <42> - - '
                'GET /path HTTP/1.1 200 42 123 3 3.141593 3141593')
    mock_logger.info.assert_called_with(expected)
Exemple #21
0
def function1052():
    var2292 = '%T {%{SPAM}e} "%{ETag}o" %X {X} %%P %{FOO_TEST}e %{FOO1}e'
    var2476 = mock.Mock()
    var3932 = helpers.AccessLogger(var2476, var2292)
    var926 = '%s {%s} "%s" %%X {X} %%%s %s %s'
    assert (var926 == var3932._log_format)
Exemple #22
0
def test_access_logger_format():
    log_format = '%T {%{SPAM}e} "%{ETag}o" %X {X} %%P %{FOO_TEST}e %{FOO1}e'
    mock_logger = mock.Mock()
    access_logger = helpers.AccessLogger(mock_logger, log_format)
    expected = '%s {%s} "%s" %%X {X} %%%s %s %s'
    assert expected == access_logger._log_format
Exemple #23
0
def test_logger_internal_error():
    mock_logger = mock.Mock()
    access_logger = helpers.AccessLogger(mock_logger, "%D")
    access_logger.log(None, None, 'invalid')
    mock_logger.exception.assert_called_with("Error in logging")
Exemple #24
0
def test_access_logger_format():
    log_format = '%T "%{ETag}o" %X {X} %%P'
    mock_logger = mock.Mock()
    access_logger = helpers.AccessLogger(mock_logger, log_format)
    expected = '%s "%s" %%X {X} %%%s'
    assert expected == access_logger._log_format
Exemple #25
0
def test_logger_no_transport():
    mock_logger = mock.Mock()
    access_logger = helpers.AccessLogger(mock_logger, "%a")
    access_logger.log(None, None, None, None, 0)
    mock_logger.info.assert_called_with("-", extra={'remote_address': '-'})
Exemple #26
0
    def __init__(self, *, loop=None,
                 time_service=None,
                 keepalive_timeout=75,  # NGINX default value is 75 secs
                 tcp_keepalive=True,
                 slow_request_timeout=None,
                 logger=server_logger,
                 access_log=access_logger,
                 access_log_format=helpers.AccessLogger.LOG_FORMAT,
                 debug=False,
                 max_line_size=8190,
                 max_headers=32768,
                 max_field_size=8190,
                 lingering_time=30.0,
                 lingering_timeout=5.0,
                 max_concurrent_handlers=2,
                 **kwargs):

        # process deprecated params
        logger = kwargs.get('logger', logger)

        if slow_request_timeout is not None:
            warnings.warn(
                'slow_request_timeout is deprecated', DeprecationWarning)

        super().__init__(loop=loop)

        self._loop = loop if loop is not None else asyncio.get_event_loop()
        if time_service is not None:
            self._time_service_owner = False
            self._time_service = time_service
        else:
            self._time_service_owner = True
            self._time_service = TimeService(self._loop)

        self._tcp_keepalive = tcp_keepalive
        self._keepalive_handle = None
        self._keepalive_timeout = keepalive_timeout
        self._lingering_time = float(lingering_time)
        self._lingering_timeout = float(lingering_timeout)

        self._messages = deque()
        self._message_lines = []
        self._message_tail = b''

        self._waiters = deque()
        self._reading_request = False
        self._request_handlers = []
        self._max_concurrent_handlers = max_concurrent_handlers

        self._upgrade = False
        self._payload_parser = None
        self._request_parser = aiohttp.HttpRequestParser(
            max_line_size=max_line_size,
            max_field_size=max_field_size,
            max_headers=max_headers)

        self.transport = None
        self._reading_paused = False

        self.logger = logger
        self.debug = debug
        self.access_log = access_log
        if access_log:
            self.access_logger = helpers.AccessLogger(
                access_log, access_log_format)
        else:
            self.access_logger = None
        self._closing = False