Class: Mumukit::Assistant::Rule::TheseTestsFailed

Inherits:
SubmissionFailed show all
Defined in:
lib/mumukit/assistant/rule/these_tests_failed.rb

Direct Known Subclasses

OnlyTheseTestsFailed

Instance Attribute Summary

Attributes inherited from Base

#message

Instance Method Summary collapse

Methods inherited from Base

#message_for

Constructor Details

#initialize(message, tests) ⇒ TheseTestsFailed

Returns a new instance of TheseTestsFailed.



2
3
4
5
6
# File 'lib/mumukit/assistant/rule/these_tests_failed.rb', line 2

def initialize(message, tests)
  raise 'missing tests' if tests.blank?
  super(message)
  @tests = tests
end

Instance Method Details

#failed_tests(submission) ⇒ Object



22
23
24
# File 'lib/mumukit/assistant/rule/these_tests_failed.rb', line 22

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

#includes_failing_test?(title, submission) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/mumukit/assistant/rule/these_tests_failed.rb', line 18

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

#matches?(submission) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/mumukit/assistant/rule/these_tests_failed.rb', line 8

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

#matches_failing_tests?(submission) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
15
16
# File 'lib/mumukit/assistant/rule/these_tests_failed.rb', line 12

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