diff --git a/lib/py_lint_adapter.rb b/lib/py_lint_adapter.rb index 57c58a3d..cd9adea4 100644 --- a/lib/py_lint_adapter.rb +++ b/lib/py_lint_adapter.rb @@ -1,5 +1,5 @@ class PyLintAdapter < TestingFrameworkAdapter - REGEXP = /Your code has been rated at (\d+\.?\d*)\/(\d+\.?\d*)/ + REGEXP = /Your code has been rated at (-?\d+\.?\d*)\/(\d+\.?\d*)/ ASSERTION_ERROR_REGEXP = /^.*?\(.*?,\ (.*?),.*?\)\ (.*?)$/m def self.framework_name @@ -7,10 +7,17 @@ class PyLintAdapter < TestingFrameworkAdapter end def parse_output(output) - captures = REGEXP.match(output[:stdout]).captures.map(&:to_f) - count = captures.second - passed = captures.first - failed = count - passed + regex_match = REGEXP.match(output[:stdout]) + if regex_match.blank? + count = 0 + failed = 0 + else + captures = regex_match.captures.map(&:to_f) + count = captures.second + passed = captures.first + failed = count - passed + end + begin assertion_error_matches = Timeout.timeout(2.seconds) do output[:stdout].scan(ASSERTION_ERROR_REGEXP).map { |match|