예제 #1
0
def test_talisker_client_defaults(monkeypatch, log):
    monkeypatch.setitem(os.environ, 'TALISKER_ENV', 'production')
    monkeypatch.setitem(os.environ, 'TALISKER_UNIT', 'talisker-1')
    monkeypatch.setitem(os.environ, 'TALISKER_DOMAIN', 'example.com')

    client = talisker.sentry.get_client.uncached(
        dsn=conftest.DSN, transport=conftest.DummyTransport)

    assert 'configured raven' in log[-1].msg

    # check client side
    assert (list(sorted(client.processors)) == list(
        sorted(talisker.sentry.default_processors)))
    # this is unpleasant, but it saves us mocking
    assert raven.breadcrumbs.install_logging_hook.called is False
    assert raven.breadcrumbs._hook_requests.called is False
    assert raven.breadcrumbs._install_httplib.called is False

    # check message
    try:
        raise Exception('test')
    except Exception:
        client.captureException()

    messages = conftest.sentry_messages(client)
    data = messages[0]

    assert data['release'] == talisker.revision.get()
    assert data['environment'] == 'production'
    assert data['server_name'] == 'talisker-1'
    assert data['tags']['site'] == 'example.com'
예제 #2
0
def test_talisker_client_defaults_none(monkeypatch, log):
    monkeypatch.setitem(os.environ, 'TALISKER_ENV', 'production')
    monkeypatch.setitem(os.environ, 'TALISKER_UNIT', 'talisker-1')
    monkeypatch.setitem(os.environ, 'TALISKER_DOMAIN', 'example.com')

    # raven flask integration passes in all possible kwargs as None
    kwargs = {
        'release': None,
        'hook_libraries': None,
        'site': None,
        'environment': None,
        'name': None,
    }
    client = talisker.sentry.get_client.uncached(
        dsn=conftest.DSN, transport=conftest.DummyTransport, **kwargs)

    # this is unpleasant, but it saves us mocking
    assert raven.breadcrumbs.install_logging_hook.called is False
    assert raven.breadcrumbs._hook_requests.called is False
    assert raven.breadcrumbs._install_httplib.called is False

    # check message
    try:
        raise Exception('test')
    except Exception:
        client.captureException()

    messages = conftest.sentry_messages(client)
    data = messages[0]

    assert data['release'] == talisker.revision.get()
    assert data['environment'] == 'production'
    assert data['server_name'] == 'talisker-1'
    assert data['tags']['site'] == 'example.com'
예제 #3
0
def test_flask_sentry_app_tag():
    sentry = talisker.flask.sentry(app)
    response = get_url(app, '/')

    assert response.status_code == 500
    messages = conftest.sentry_messages(sentry.client)
    msg = messages[0]
    assert msg['tags']['flask_app'] == app.name
예제 #4
0
파일: test_flask.py 프로젝트: psr/talisker
def test_flask_sentry_sends_message():
    sentry = talisker.flask.sentry(app)
    response = get_url('/')

    assert response.status_code == 500
    messages = conftest.sentry_messages(sentry.client)
    assert len(messages) == 1
    msg = messages[0]
    assert msg['culprit'] == '/'
예제 #5
0
def test_flask_sentry_uses_app_config_to_set_name(monkeypatch):
    monkeypatch.setitem(app.config, 'SENTRY_NAME', 'SomeName')
    sentry = talisker.flask.sentry(app)
    assert sentry.client.name == 'SomeName'

    response = get_url(app, '/')

    assert response.status_code == 500
    messages = conftest.sentry_messages(sentry.client)
    assert len(messages) == 1
    msg = messages[0]
    assert msg['server_name'] == 'SomeName'
예제 #6
0
파일: test_flask.py 프로젝트: psr/talisker
def test_flask_sentry_uses_app_config_to_ingnore_exc(monkeypatch):
    monkeypatch.setitem(app.config, 'SENTRY_CONFIG',
                        {'ignore_exceptions': ['IgnoredException']})
    sentry = talisker.flask.sentry(app)

    assert 'IgnoredException' in sentry.client.ignore_exceptions

    response = get_url('/ignored')

    assert response.status_code == 500
    messages = conftest.sentry_messages(sentry.client)
    assert len(messages) == 0
예제 #7
0
def test_logs_ignored():
    client = talisker.sentry.get_client.uncached(
        dsn=conftest.DSN, transport=conftest.DummyTransport)

    client.context.clear()
    logging.getLogger('talisker.slowqueries').info('talisker.slowqueries')
    logging.getLogger('talisker').info('talisker')
    try:
        raise Exception('test')
    except Exception:
        client.captureException()

    messages = conftest.sentry_messages(client)
    data = messages[0]
    assert len(data['breadcrumbs']) == 1
    crumb = data['breadcrumbs']['values'][0]
    assert crumb['message'] == 'talisker'
    assert crumb['category'] == 'talisker'