Example #1
0
def test_settings_missing():
    stdout = compat.StringIO()
    with override_settings(ELASTIC_APM={}):
        call_command('elasticapm', 'check', stdout=stdout)
    output = stdout.getvalue()
    assert 'Configuration errors detected' in output
    assert 'SERVICE_NAME not set' in output
    assert 'SECRET_TOKEN not set' in output
Example #2
0
def test_middleware_not_first():
    stdout = compat.StringIO()
    with override_settings(**middleware_setting(django.VERSION, (
        'foo',
        'elasticapm.contrib.django.middleware.TracingMiddleware'
    ))):
        call_command('elasticapm', 'check', stdout=stdout)
    output = stdout.getvalue()
    assert 'not at the first position' in output
Example #3
0
def test_test_exception(urlopen_mock):
    stdout = compat.StringIO()
    resp = mock.Mock(status=200, getheader=lambda h: 'http://example.com')
    urlopen_mock.return_value = resp
    with override_settings(**middleware_setting(django.VERSION, [
        'foo',
        'elasticapm.contrib.django.middleware.TracingMiddleware'
    ])):
        call_command('elasticapm', 'test', stdout=stdout, stderr=stdout)
    output = stdout.getvalue()
    assert 'Success! We tracked the error successfully!' in output
Example #4
0
def test_metadata_prepended(mock_send):
    transport = Transport(metadata={"x": "y"}, max_flush_time=5, compress_level=0)
    transport.queue("error", {}, flush=True)
    assert mock_send.call_count == 1
    args, kwargs = mock_send.call_args
    if compat.PY2:
        data = gzip.GzipFile(fileobj=compat.StringIO(args[0])).read()
    else:
        data = gzip.decompress(args[0])
    data = data.decode("utf-8").split("\n")
    assert "metadata" in data[0]
Example #5
0
def test_metadata_prepended(mock_send, elasticapm_client):
    transport = Transport(client=elasticapm_client, compress_level=0)
    transport.start_thread()
    transport.queue("error", {}, flush=True)
    transport.close()
    assert mock_send.call_count == 1
    args, kwargs = mock_send.call_args
    if compat.PY2:
        data = gzip.GzipFile(fileobj=compat.StringIO(args[0])).read()
    else:
        data = gzip.decompress(args[0])
    data = data.decode("utf-8").split("\n")
    assert "metadata" in data[0]
Example #6
0
def test_django_logging_request_kwarg(django_elasticapm_client):
    handler = LoggingHandler()

    logger = logging.getLogger(__name__)
    logger.handlers = []
    logger.addHandler(handler)

    logger.error('This is a test error', extra={
        'request': WSGIRequest(environ={
            'wsgi.input': compat.StringIO(),
            'REQUEST_METHOD': 'POST',
            'SERVER_NAME': 'testserver',
            'SERVER_PORT': '80',
            'CONTENT_TYPE': 'application/json',
            'ACCEPT': 'application/json',
        })
    })

    assert len(django_elasticapm_client.events) == 1
    event = django_elasticapm_client.events.pop(0)['errors'][0]
    assert 'request' in event['context']
    request = event['context']['request']
    assert request['method'] == 'POST'
Example #7
0
def test_middleware_not_set():
    stdout = compat.StringIO()
    with override_settings(**middleware_setting(django.VERSION, ())):
        call_command('elasticapm', 'check', stdout=stdout)
    output = stdout.getvalue()
    assert 'Tracing middleware not configured!' in output
Example #8
0
def test_subcommand_not_known(argv_mock):
    stdout = compat.StringIO()
    argv_mock.return_value = ['manage.py', 'elasticapm']
    call_command('elasticapm', 'foo', stdout=stdout)
    output = stdout.getvalue()
    assert 'No such command "foo"' in output
Example #9
0
def test_subcommand_not_set(argv_mock):
    stdout = compat.StringIO()
    argv_mock.return_value = ['manage.py', 'elasticapm']
    call_command('elasticapm', stdout=stdout)
    output = stdout.getvalue()
    assert 'No command specified' in output
def test_cgroup_parsing(test_input, expected):
    f = compat.StringIO(test_input)
    result = cgroup.parse_cgroups(f)
    assert result == expected