mumukit-assistant 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/mumukit/assistant/rule.rb +8 -4
- data/lib/mumukit/assistant/rule/only_these_expectations_failed.rb +5 -0
- data/lib/mumukit/assistant/rule/these_expectations_failed.rb +10 -5
- data/lib/mumukit/assistant/rule/these_tests_failed.rb +1 -1
- data/lib/mumukit/assistant/version.rb +1 -1
- metadata +11 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 61831f6e3b8b9148533c7750c6cd1fe00da152b7b65f1b17c8e03a2230702299
|
4
|
+
data.tar.gz: a50ed94ad78bbf063979f101a0598f6ef868e1b62d852f1dd5102bfed8cef6b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ae461914bc5d0af93cdb177ddbd7c29bda4757f8505ccf15a8c6033659e0ff0ff693600350861c32ca3621a3ff863dbec569c8b6ea35d3a44e1bf0f99a9c083
|
7
|
+
data.tar.gz: 71477eb4923bba10efdb08fb9763c5e76c26f05a62069bb4a34921a6ecfed66d9365a7d57b374dace95f18028e0f4442a7b34b7cd5afe8d3aa0759d1e67548a7
|
@@ -22,10 +22,13 @@ module Mumukit::Assistant::Rule
|
|
22
22
|
def self.parse_complex_when(w, message)
|
23
23
|
condition, value = *w
|
24
24
|
case condition.to_sym
|
25
|
-
when :error_contains
|
26
|
-
when :these_tests_failed
|
27
|
-
when :only_these_tests_failed
|
28
|
-
when :these_expectations_failed
|
25
|
+
when :error_contains then Mumukit::Assistant::Rule::ErrorContains.new(message, value)
|
26
|
+
when :these_tests_failed then Mumukit::Assistant::Rule::TheseTestsFailed.new(message, value)
|
27
|
+
when :only_these_tests_failed then Mumukit::Assistant::Rule::OnlyTheseTestsFailed.new(message, value)
|
28
|
+
when :these_expectations_failed then Mumukit::Assistant::Rule::TheseExpectationsFailed.new(message, value)
|
29
|
+
when :only_these_expectations_failed then Mumukit::Assistant::Rule::OnlyTheseExpectationsFailed.new(message, value)
|
30
|
+
when :submission_passed_with_these_warnings then Mumukit::Assistant::Rule::TheseExpectationsFailed.new(message, value, strict: true)
|
31
|
+
when :submission_passed_with_only_these_warnings then Mumukit::Assistant::Rule::OnlyTheseExpectationsFailed.new(message, value, strict: true)
|
29
32
|
else raise "Unsupported rule #{condition}"
|
30
33
|
end
|
31
34
|
end
|
@@ -38,5 +41,6 @@ require_relative 'rule/these_tests_failed.rb'
|
|
38
41
|
require_relative 'rule/only_these_tests_failed.rb'
|
39
42
|
require_relative 'rule/submission_passed_with_warnings.rb'
|
40
43
|
require_relative 'rule/these_expectations_failed.rb'
|
44
|
+
require_relative 'rule/only_these_expectations_failed.rb'
|
41
45
|
require_relative 'rule/submission_errored.rb'
|
42
46
|
require_relative 'rule/error_contains.rb'
|
@@ -1,22 +1,27 @@
|
|
1
1
|
class Mumukit::Assistant::Rule::TheseExpectationsFailed < Mumukit::Assistant::Rule::SubmissionPassedWithWarnings
|
2
|
-
def initialize(message, expectations)
|
2
|
+
def initialize(message, expectations, strict: false)
|
3
3
|
raise 'missing expectations' if expectations.blank?
|
4
4
|
super(message)
|
5
5
|
@expectations = expectations
|
6
|
+
@strict = strict
|
6
7
|
end
|
7
8
|
|
8
9
|
def matches?(submission)
|
9
|
-
super && matches_failing_expectations?(submission)
|
10
|
+
(!@strict || super) && matches_failing_expectations?(submission)
|
10
11
|
end
|
11
12
|
|
12
13
|
def matches_failing_expectations?(submission)
|
13
14
|
@expectations.all? do |it|
|
14
|
-
includes_failing_expectation? it, submission
|
15
|
+
includes_failing_expectation? it, submission
|
15
16
|
end
|
16
17
|
end
|
17
18
|
|
18
|
-
def
|
19
|
+
def failed_expectations(submission)
|
20
|
+
@failed_expectations ||= submission.expectation_results.select { |it| it[:result].failed? }
|
21
|
+
end
|
22
|
+
|
23
|
+
def includes_failing_expectation?(humanized_expectation, submission)
|
19
24
|
binding, inspection = humanized_expectation.split(' ')
|
20
|
-
|
25
|
+
failed_expectations(submission).any? { |it| it[:binding] == binding && it[:inspection] == inspection }
|
21
26
|
end
|
22
27
|
end
|
@@ -20,6 +20,6 @@ class Mumukit::Assistant::Rule::TheseTestsFailed < Mumukit::Assistant::Rule::Sub
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def failed_tests(submission)
|
23
|
-
submission.test_results.select { |it| it[:status].failed? }
|
23
|
+
@failed_tests ||= submission.test_results.select { |it| it[:status].failed? }
|
24
24
|
end
|
25
25
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mumukit-assistant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julián Berbel Alt
|
@@ -9,22 +9,28 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-10-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '1.16'
|
21
|
+
- - "<"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '3'
|
21
24
|
type: :development
|
22
25
|
prerelease: false
|
23
26
|
version_requirements: !ruby/object:Gem::Requirement
|
24
27
|
requirements:
|
25
|
-
- - "
|
28
|
+
- - ">="
|
26
29
|
- !ruby/object:Gem::Version
|
27
30
|
version: '1.16'
|
31
|
+
- - "<"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3'
|
28
34
|
- !ruby/object:Gem::Dependency
|
29
35
|
name: rake
|
30
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -85,6 +91,7 @@ files:
|
|
85
91
|
- lib/mumukit/assistant/rule/base.rb
|
86
92
|
- lib/mumukit/assistant/rule/content_empty.rb
|
87
93
|
- lib/mumukit/assistant/rule/error_contains.rb
|
94
|
+
- lib/mumukit/assistant/rule/only_these_expectations_failed.rb
|
88
95
|
- lib/mumukit/assistant/rule/only_these_tests_failed.rb
|
89
96
|
- lib/mumukit/assistant/rule/submission_errored.rb
|
90
97
|
- lib/mumukit/assistant/rule/submission_failed.rb
|