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