<testsuite errors="0" failures="0" name="" tests="197" time="37.527">
<testcase classname="tests.runner.test_handler_git.GitPollerHandlerTest" name="test_git_submodules" time="0.255"/>
<testcase classname="tests.runner.test_handler_git.GitPollerHandlerTest" name="test_prepare_mounts" time="0.051"/>
<testcase classname="tests.runner.test_handler_git.GitPollerHandlerTest" name="test_prepare_mounts_bad_clone" time="6.018"/>
<testcase classname="tests.runner.test_handler_git.GitPollerHandlerTest" name="test_prepare_mounts_bad_sha" time="0.040"/>
<testcase classname="tests.runner.test_handler_git.GitPollerHandlerTest" name="test_private_github" time="0.001"/>
<testcase classname="tests.runner.test_handler_git.GitPollerHandlerTest" name="test_private_gitlab" time="0.003"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_docker_login" time="0.001"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_docker_max_memory" time="0.000">
<skipped>Docker not available</skipped>
</testcase>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_docker_pull_fails" time="10.005"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_docker_run" time="0.000">
<skipped>Docker not available</skipped>
</testcase>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_exec" time="0.004"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_exec_hung" time="1.102"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_exec_retriable" time="0.013"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_execute_cancelled" time="0.002"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_execute_expected" time="0.000"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_execute_success" time="0.002"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_execute_unexpected" time="0.001"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_junit_tests" time="0.003"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_prepare_mounts" time="0.002"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_prepare_mounts_null" time="0.002"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_prepare_mounts_unexpected" time="0.001"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_prepare_netrc" time="0.002"/>
<testcase classname="tests.runner.test_handler_simple.SimpleHandlerTest" name="test_prepare_script_repo" time="0.026"/>
<testcase classname="tests.runner.test_logging.LoggerTest" name="test_error" time="0.000"/>
<testcase classname="tests.runner.test_logging.LoggerTest" name="test_exec" time="0.001"/>
<testcase classname="tests.runner.test_logging.LoggerTest" name="test_exec_cancelled" time="0.000"/>
<testcase classname="tests.runner.test_logging.LoggerTest" name="test_info" time="0.000"/>
<testcase classname="tests.runner.test_logging.LoggerTest" name="test_warn" time="0.000"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_build_get" time="0.043"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_build_get_definition" time="0.013"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_build_get_latest" time="0.033"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_build_list" time="0.021"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_build_list_paginate" time="0.033"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_build_trigger_bad_tag" time="0.066"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_build_trigger_fails" time="0.009"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_build_trigger_simple" time="0.011"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_build_trigger_with_refine" time="0.064"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_build_trigger_with_secrets" time="0.016"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_build_unexpected" time="0.060"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_cancel" time="0.021"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_external_build_post" time="0.028"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_no_builds" time="0.012"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_patch" time="0.014"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_promote_get" time="0.026"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_promote_list" time="0.026"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_promote_list_empty" time="0.020"/>
<testcase classname="tests.test_api_build.BuildAPITest" name="test_promote_post" time="0.020"/>
<testcase classname="tests.test_api_github.ApiTest" name="test_find_target_sha" time="0.007"/>
<testcase classname="tests.test_api_github.ApiTest" name="test_get_proj_def_branches" time="0.010"/>
<testcase classname="tests.test_api_github.ApiTest" name="test_get_proj_def_heracles" time="0.007"/>
<testcase classname="tests.test_api_github.ApiTest" name="test_get_proj_def_repo" time="0.006"/>
<testcase classname="tests.test_api_health.HealthApiTest" name="test_run_health" time="0.500"/>
<testcase classname="tests.test_api_project.ProjectAPITest" name="test_no_projects" time="0.007"/>
<testcase classname="tests.test_api_project.ProjectAPITest" name="test_project_create" time="0.010"/>
<testcase classname="tests.test_api_project.ProjectAPITest" name="test_project_create_bad_allowed_hosts" time="0.006"/>
<testcase classname="tests.test_api_project.ProjectAPITest" name="test_project_create_denied" time="0.006"/>
<testcase classname="tests.test_api_project.ProjectAPITest" name="test_project_delete_denied" time="0.014"/>
<testcase classname="tests.test_api_project.ProjectAPITest" name="test_project_get" time="0.009"/>
<testcase classname="tests.test_api_project.ProjectAPITest" name="test_project_get_404" time="0.007"/>
<testcase classname="tests.test_api_project.ProjectAPITest" name="test_project_list" time="0.008"/>
<testcase classname="tests.test_api_project.ProjectAPITest" name="test_project_patch" time="0.010"/>
<testcase classname="tests.test_api_project.ProjectAPITest" name="test_project_permission" time="0.007"/>
<testcase classname="tests.test_api_project.ProjectAPITest" name="test_project_run_history" time="0.030"/>
<testcase classname="tests.test_api_project.ProjectAPITest" name="test_project_trigger_create" time="0.015"/>
<testcase classname="tests.test_api_project.ProjectAPITest" name="test_project_trigger_secret_removal" time="0.015"/>
<testcase classname="tests.test_api_project_triggers.ProjectTriggerAPITest" name="test_bad_secret" time="0.012"/>
<testcase classname="tests.test_api_project_triggers.ProjectTriggerAPITest" name="test_list_triggers" time="0.013"/>
<testcase classname="tests.test_api_project_triggers.ProjectTriggerAPITest" name="test_list_triggers_empty" time="0.008"/>
<testcase classname="tests.test_api_project_triggers.ProjectTriggerAPITest" name="test_list_triggers_no_auth" time="0.006"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_build_complete" time="0.134"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_build_complete_email_skip" time="0.034"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_build_complete_triggers" time="0.046"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_get_stream" time="0.018"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_no_runs" time="0.013"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_cancel" time="0.026"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_complete_tests" time="0.034"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_complete_tests_default" time="0.027"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_complete_triggers" time="0.030"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_complete_triggers_name_error" time="0.029"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_complete_triggers_type_upgrade" time="0.030"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_get" time="0.027"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_get_404" time="0.014"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_get_definition" time="0.018"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_list" time="0.017"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_metadata" time="0.022"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_rerun" time="0.020"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_stream" time="0.025"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_run_stream_not_authenticated" time="0.015"/>
<testcase classname="tests.test_api_run.RunAPITest" name="test_upload" time="0.017"/>
<testcase classname="tests.test_api_test.TestAPITest" name="test_test_create" time="0.021"/>
<testcase classname="tests.test_api_test.TestAPITest" name="test_test_create_results" time="0.033"/>
<testcase classname="tests.test_api_test.TestAPITest" name="test_test_create_results_stdout" time="0.021"/>
<testcase classname="tests.test_api_test.TestAPITest" name="test_test_get" time="0.023"/>
<testcase classname="tests.test_api_test.TestAPITest" name="test_test_list" time="0.018"/>
<testcase classname="tests.test_api_test.TestAPITest" name="test_test_update" time="0.030"/>
<testcase classname="tests.test_api_test.TestAPITest" name="test_test_update_duplicate" time="0.030"/>
<testcase classname="tests.test_api_test.TestAPITest" name="test_test_update_multiple" time="0.043"/>
<testcase classname="tests.test_api_test.TestAPITest" name="test_test_update_with_results" time="0.030"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_deleted_project" time="0.492"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_bad_auth" time="0.490"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_create" time="0.491"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_create_bad" time="0.006"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_delete" time="0.493"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_get" time="0.731"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_get_run" time="0.004">
<skipped>Test requires MySQL</skipped>
</testcase>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_jwt_auth" time="0.256"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_jwt_auth_restricted" time="0.258"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_list" time="0.499"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_log_event" time="0.491"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_logs" time="0.731"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_low_disk" time="0.493"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_needs_auth" time="0.248"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_ping" time="0.492"/>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_queue_priority" time="0.004">
<skipped>Test requires MySQL</skipped>
</testcase>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_sync_builds" time="0.004">
<skipped>Test requires MySQL</skipped>
</testcase>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_sync_builds_across_tags" time="0.004">
<skipped>Test requires MySQL</skipped>
</testcase>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_sync_builds_regression" time="0.004">
<skipped>Test requires MySQL</skipped>
</testcase>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_sync_builds_uploading" time="0.004">
<skipped>Test requires MySQL</skipped>
</testcase>
<testcase classname="tests.test_api_worker.WorkerAPITest" name="test_worker_update" time="0.736"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_cgit_log_not_skip_other_content" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_cgit_log_not_skip_other_title" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_cgit_log_skip_head_content" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_cgit_log_skip_head_title" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_get_project_triggers" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_get_refs" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_get_refs_fatal" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_github_log_not_skip" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_github_log_not_skip_other_message" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_github_log_skip_head_message" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_gitlab_not_skip_other_content" time="0.003"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_gitlab_not_skip_other_title" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_gitlab_skip_head_content" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_gitlab_skip_head_title" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_poll_add" time="0.003"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_poll_remove" time="0.002"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_poll_updated" time="0.003"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_repo_changes_changed" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_repo_changes_first_run" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_trigger_skip_cgit" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_trigger_skip_github" time="0.001"/>
<testcase classname="tests.test_git_poller.TestGitPoller" name="test_trigger_skip_gitlab" time="0.001"/>
<testcase classname="tests.test_local_storage.LocalStorageTest" name="test_download" time="0.021"/>
<testcase classname="tests.test_local_storage.LocalStorageTest" name="test_list" time="0.013"/>
<testcase classname="tests.test_local_storage.LocalStorageTest" name="test_list_empty" time="0.013"/>
<testcase classname="tests.test_local_storage.LocalStorageTest" name="test_upload" time="0.024"/>
<testcase classname="tests.test_models.BuildTest" name="test_as_json" time="0.013"/>
<testcase classname="tests.test_models.BuildTest" name="test_build_events" time="0.011"/>
<testcase classname="tests.test_models.BuildTest" name="test_create_build" time="0.015"/>
<testcase classname="tests.test_models.BuildTest" name="test_create_build_concurrency" time="0.012"/>
<testcase classname="tests.test_models.BuildTest" name="test_cumulative_status" time="0.010"/>
<testcase classname="tests.test_models.BuildTest" name="test_simple" time="0.009"/>
<testcase classname="tests.test_models.BuildTest" name="test_unique_build_id" time="0.010"/>
<testcase classname="tests.test_models.ProjectTest" name="test_project_unique" time="0.006"/>
<testcase classname="tests.test_models.ProjectTest" name="test_simple" time="0.007"/>
<testcase classname="tests.test_models.RunTest" name="test_as_json" time="0.016"/>
<testcase classname="tests.test_models.RunTest" name="test_build_status_failed" time="0.015"/>
<testcase classname="tests.test_models.RunTest" name="test_build_status_passed" time="0.013"/>
<testcase classname="tests.test_models.RunTest" name="test_build_status_queued" time="0.013"/>
<testcase classname="tests.test_models.RunTest" name="test_build_status_running" time="0.013"/>
<testcase classname="tests.test_models.RunTest" name="test_build_status_running_failed" time="0.013"/>
<testcase classname="tests.test_models.RunTest" name="test_run_name" time="0.012"/>
<testcase classname="tests.test_models.RunTest" name="test_simple" time="0.012"/>
<testcase classname="tests.test_models.TestsTest" name="test_complete" time="0.017"/>
<testcase classname="tests.test_models.TestsTest" name="test_empty" time="0.013"/>
<testcase classname="tests.test_models.TestsTest" name="test_not_complete" time="0.016"/>
<testcase classname="tests.test_models.TestsTest" name="test_not_queued" time="0.015"/>
<testcase classname="tests.test_models.TestsTest" name="test_same_name" time="0.013"/>
<testcase classname="tests.test_notify.SendmailTest" name="test_get_build_stats" time="0.044"/>
<testcase classname="tests.test_notify.SendmailTest" name="test_notify_build_complete" time="0.017"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_bad_container_auth" time="0.047"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_bad_script" time="0.048"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_bad_script_mutual_exclusion" time="0.048"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_bad_script_repo" time="0.049"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_bad_trigger" time="0.048"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_examples" time="0.541"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_host_tag_rundef" time="0.047"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_host_tag_rundef_loopon" time="0.047"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_host_tag_rundef_loopon_bad" time="0.047"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_loop_on" time="0.048"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_params" time="0.046"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_recursive_build_trigger" time="0.047"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_recursive_run_trigger" time="0.047"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_run_name_too_long" time="0.047"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_script_repo_rundef" time="0.048"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_script_repo_token" time="0.048"/>
<testcase classname="tests.test_project.ProjectSchemaTest" name="test_simple_bad" time="0.048"/>
<testcase classname="tests.test_worker.TestWorkerMonitor" name="test_cancelled" time="0.257"/>
<testcase classname="tests.test_worker.TestWorkerMonitor" name="test_offline" time="0.251"/>
<testcase classname="tests.test_worker.TestWorkerMonitor" name="test_offline_no_pings" time="0.250"/>
<testcase classname="tests.test_worker.TestWorkerMonitor" name="test_rotate" time="0.253"/>
<testcase classname="tests.test_worker.TestWorkerMonitor" name="test_running_acked" time="0.263"/>
<testcase classname="tests.test_worker.TestWorkerMonitor" name="test_stuck" time="0.261"/>
<testcase classname="tests.test_worker.TestWorkerMonitor" name="test_surge_complex" time="0.748"/>
<testcase classname="tests.test_worker.TestWorkerMonitor" name="test_surge_simple" time="0.261"/>
<testcase classname="tests.test_worker.TestWorkerMonitor" name="test_truncate" time="0.253"/>
<testcase classname="tests.test_worker_jwt.WorkerJwtTest" name="test_restricted" time="0.004"/>
<testcase classname="tests.test_worker_jwt.WorkerJwtTest" name="test_simple" time="0.007"/>
</testsuite>
