Exemplo n.º 1
0
def test_main_success(monkeypatch: MonkeyPatchFixture, init_events, self_monitoring):
    response(200, "Success")

    # given
    for variable_name in system_variables:
        monkeypatch.setenv(variable_name, system_variables[variable_name])
    monkeypatch.setattr(main, 'content_length_limit', 500)

    # when
    main.process_logs(init_events, self_monitoring)

    # then
    sent_requests = Requests.get_all_received_requests().get_json_data()
    print("Sent requests: {}".format(json.dumps(sent_requests)))

    assert int(sent_requests.get('meta').get('total')) == EVENTS_NUMBER - 2 # rejected 8 too old logs (4 records = 1 event)
    for request in sent_requests.get('requests'):
        assert_correct_body_structure(request)
        assert request.get('responseDefinition').get('status') == 200

    assert self_monitoring.too_old_records == 5
    assert self_monitoring.parsing_errors == 4
    assert self_monitoring.too_long_content_size == [599, 599, 599, 599]
    assert Counter(self_monitoring.dynatrace_connectivities) == {DynatraceConnectivity.Ok: 3}
    assert self_monitoring.processing_time > 0
    assert self_monitoring.sending_time > 0
def test_main_server_error(monkeypatch: MonkeyPatchFixture, init_events,
                           self_monitoring):
    response(500, "Server error")

    # given
    for variable_name in system_variables:
        monkeypatch.setenv(variable_name, system_variables[variable_name])
    monkeypatch.setattr(main, 'content_length_limit', 1000)

    # when
    with pytest.raises(HTTPError):
        main.process_logs(init_events, self_monitoring)

    # then
    sent_requests = Requests.get_all_received_requests().get_json_data()
    print("Sent requests: {}".format(json.dumps(sent_requests)))

    assert int(sent_requests.get('meta').get('total')) == 1
    for request in sent_requests.get('requests'):
        assert_correct_body_structure(request)
        assert request.get('responseDefinition').get('status') == 500

    assert self_monitoring.too_old_records == 5
    assert self_monitoring.parsing_errors == 4
    assert self_monitoring.too_long_content_size == [1317, 1317, 1317, 1317]
    assert Counter(self_monitoring.dynatrace_connectivities) == {
        DynatraceConnectivity.Other: 1
    }
    assert self_monitoring.processing_time > 0
    assert self_monitoring.sending_time > 0
    assert self_monitoring.sent_log_entries == 0