Sha256: e81211cc31449fc1a4447c8da4ba17fc60eacb895ea212e4f615797e63e73c72

Contents?: true

Size: 679 Bytes

Versions: 1

Compression:

Stored size: 679 Bytes

Contents

class Mumukit::Assistant::Rule::TheseTestsFailed < Mumukit::Assistant::Rule::SubmissionFailed
  def initialize(message, tests)
    raise 'missing tests' if tests.blank?
    super(message)
    @tests = tests
  end

  def matches?(submission)
    super && matches_failing_tests?(submission)
  end

  def matches_failing_tests?(submission)
    @tests.all? do |it|
      includes_failing_test? it, submission
    end
  end

  def includes_failing_test?(title, submission)
    failed_tests(submission).map { |it| it[:title].strip }.include?(title.strip)
  end

  def failed_tests(submission)
    @failed_tests ||= submission.test_results.select { |it| it[:status].failed? }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mumukit-assistant-0.2.1 lib/mumukit/assistant/rule/these_tests_failed.rb