Fix Linter translation with multi-line expression

Fixes CODEOCEAN-V1
This commit is contained in:
Sebastian Serth
2023-09-20 00:35:23 +02:00
parent 937a0d7d4d
commit 6d107ba2f4

View File

@ -2,7 +2,7 @@
class PyLintAdapter < TestingFrameworkAdapter class PyLintAdapter < TestingFrameworkAdapter
REGEXP = %r{Your code has been rated at (-?\d+\.?\d*)/(\d+\.?\d*)} REGEXP = %r{Your code has been rated at (-?\d+\.?\d*)/(\d+\.?\d*)}
ASSERTION_ERROR_REGEXP = /^(.*?\.py):(\d+):(.*?)\(([^,]*?), ([^,]*?),([^,]*?)\) (.*?)$/ ASSERTION_ERROR_REGEXP = /^(.*?\.py):(\d+):(.*?)\(([^,]*?), ([^,]*?),([^,]*?)\) ((?>.|\r|\n)*?)(?<!\r\n)\n(?!\n)/
def self.framework_name def self.framework_name
'PyLint' 'PyLint'
@ -66,7 +66,7 @@ class PyLintAdapter < TestingFrameworkAdapter
regex = get_t("linter.#{severity}.#{name}.regex", nil)&.strip regex = get_t("linter.#{severity}.#{name}.regex", nil)&.strip
if regex.present? if regex.present?
captures = message[:result].match(Regexp.new(regex))&.named_captures&.symbolize_keys captures = message[:result].match(Regexp.new(regex, Regexp::MULTILINE))&.named_captures&.symbolize_keys
if captures.nil? if captures.nil?
Sentry.capture_message({regex:, message: message[:result]}.to_json) Sentry.capture_message({regex:, message: message[:result]}.to_json)