Add timeout for PyLint and PyUnit Adapter

This commit is contained in:
Sebastian Serth
2020-05-13 01:27:33 +02:00
parent d1856c443f
commit ba8e08aee4
2 changed files with 25 additions and 13 deletions

View File

@ -14,16 +14,22 @@ class PyUnitAdapter < TestingFrameworkAdapter
failed = failures_matches ? failures_matches.captures.try(:first).to_i : 0
error_matches = ERRORS_REGEXP.match(output[:stderr])
errors = error_matches ? error_matches.captures.try(:first).to_i : 0
assertion_error_matches = output[:stderr].scan(ASSERTION_ERROR_REGEXP).map { |match|
testname = match[1]
error = match[3].strip
begin
Timeout.timeout(2.seconds) do
assertion_error_matches = output[:stderr].scan(ASSERTION_ERROR_REGEXP).map { |match|
testname = match[1]
error = match[3].strip
if testname == 'test_assess'
error
else
"#{testname}: #{error}"
if testname == 'test_assess'
error
else
"#{testname}: #{error}"
end
}.flatten || []
end
}.flatten || []
rescue Timeout::Error
assertion_error_matches = []
end
{count: count, failed: failed + errors, error_messages: assertion_error_matches}
end
end