Sha256: e7224510e4c2bd7da32f73a4b18b7c90f376e73d8839264a914c1d6236447c9b

Contents?: true

Size: 1.29 KB

Versions: 3

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

module GitlabQuality
  module TestTooling
    module TestResult
      class BaseTestResult
        IGNORED_FAILURES = [
          'Net::ReadTimeout',
          '403 Forbidden - Your account has been blocked'
        ].freeze

        attr_reader :report

        def initialize(report)
          @report = report
        end

        def stage
          @stage ||= file[%r{(?:api|browser_ui)/(?:(?:\d+_)?(\w+))}, 1] || category
        end

        def name
          raise NotImplementedError
        end

        def file
          raise NotImplementedError
        end

        def section
          raise NotImplementedError
        end

        def category
          raise NotImplementedError
        end

        def skipped?
          raise NotImplementedError
        end

        def failures
          raise NotImplementedError
        end

        def failures?
          failures.any?
        end

        def full_stacktrace
          failures.each do |failure|
            message = failure['message'] || ""
            message_lines = failure['message_lines'] || []

            next if IGNORED_FAILURES.any? { |e| message.include?(e) }

            return message_lines.empty? ? message : message_lines.join("\n")
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gitlab_quality-test_tooling-1.28.0 lib/gitlab_quality/test_tooling/test_result/base_test_result.rb
gitlab_quality-test_tooling-1.24.0 lib/gitlab_quality/test_tooling/test_result/base_test_result.rb
gitlab_quality-test_tooling-1.23.0 lib/gitlab_quality/test_tooling/test_result/base_test_result.rb