Class: Mumukit::Metatest::InteractiveChecker
- Inherits:
-
Checker
- Object
- Checker
- Mumukit::Metatest::InteractiveChecker
show all
- Defined in:
- lib/mumukit/metatest/interactive_checker.rb
Instance Method Summary
collapse
-
#check_last_query_equals(_result, goal) ⇒ Object
-
#check_last_query_fails(result, _goal) ⇒ Object
-
#check_last_query_matches(_result, goal) ⇒ Object
-
#check_last_query_output_includes(result, goal) ⇒ Object
-
#check_last_query_output_like(result, goal) ⇒ Object
-
#check_last_query_outputs(result, goal) ⇒ Object
-
#check_last_query_passes(result, _goal) ⇒ Object
-
#check_queries_match(result, goal) ⇒ Object
-
#check_query_fails(result, goal) ⇒ Object
-
#check_query_outputs(result, goal) ⇒ Object
-
#check_query_passes(result, goal) ⇒ Object
-
#compare_last_query_by(sym, result, goal, &condition) ⇒ Object
-
#fail_t(sym, *args) ⇒ Object
-
#initialize(request, strip_mode: :left_and_right) ⇒ InteractiveChecker
constructor
A new instance of InteractiveChecker.
-
#locale(sym) ⇒ Object
-
#normalize(a_string) ⇒ Object
-
#render_success_output(_value) ⇒ Object
Methods inherited from Checker
#abort, #build_error_output, #build_failed_test_result, #build_passed_test_result, #build_success_output, #check, #check_assertion, #check_assertions, #error, #fail, #postconditions_for, #render_error_output
Constructor Details
#initialize(request, strip_mode: :left_and_right) ⇒ InteractiveChecker
Returns a new instance of InteractiveChecker.
4
5
6
7
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 4
def initialize(request, strip_mode: :left_and_right)
@request = request
@strip_mode = strip_mode
end
|
Instance Method Details
#check_last_query_equals(_result, goal) ⇒ Object
9
10
11
12
13
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 9
def check_last_query_equals(_result, goal)
expected = goal[:value]
actual = query
fail_t :check_last_query_equals, expected: expected, actual: actual unless expected == actual
end
|
#check_last_query_fails(result, _goal) ⇒ Object
20
21
22
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 20
def check_last_query_fails(result, _goal)
fail_t :check_last_query_fails unless result[:query][:status].failed?
end
|
#check_last_query_matches(_result, goal) ⇒ Object
15
16
17
18
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 15
def check_last_query_matches(_result, goal)
regexp = goal[:regexp]
fail_t :check_last_query_matches, regexp: regexp.inspect unless query.match?(regexp)
end
|
#check_last_query_output_includes(result, goal) ⇒ Object
35
36
37
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 35
def check_last_query_output_includes(result, goal)
compare_last_query_by(:check_last_query_output_includes, result, goal) { |expected, actual| actual.include? expected }
end
|
#check_last_query_output_like(result, goal) ⇒ Object
39
40
41
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 39
def check_last_query_output_like(result, goal)
compare_last_query_by(:check_last_query_output_like, result, goal) { |expected, actual| normalize(expected) == normalize(actual) }
end
|
#check_last_query_outputs(result, goal) ⇒ Object
31
32
33
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 31
def check_last_query_outputs(result, goal)
compare_last_query_by(:check_last_query_outputs, result, goal) { |expected, actual| expected == actual }
end
|
#check_last_query_passes(result, _goal) ⇒ Object
49
50
51
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 49
def check_last_query_passes(result, _goal)
fail_t :check_last_query_passes unless result[:query][:status].passed?
end
|
#check_queries_match(result, goal) ⇒ Object
24
25
26
27
28
29
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 24
def check_queries_match(result, goal)
queries = [query] + @request.cookie.to_a
fail_t :check_queries_match unless goal[:regexps].all? do |regexp|
queries.any? { |query| query.match? regexp }
end
end
|
#check_query_fails(result, goal) ⇒ Object
57
58
59
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 57
def check_query_fails(result, goal)
fail_t :check_query_fails, query: goal[:query] unless result[:status].failed?
end
|
#check_query_outputs(result, goal) ⇒ Object
61
62
63
64
65
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 61
def check_query_outputs(result, goal)
expected = goal[:output]
actual = result[:goal]
fail_t :check_query_outputs, query: goal[:query], expected: expected, actual: actual unless expected == actual
end
|
#check_query_passes(result, goal) ⇒ Object
53
54
55
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 53
def check_query_passes(result, goal)
fail_t :check_query_passes, query: goal[:query] unless result[:status].passed?
end
|
#compare_last_query_by(sym, result, goal, &condition) ⇒ Object
43
44
45
46
47
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 43
def compare_last_query_by(sym, result, goal, &condition)
expected = goal[:output]
actual = result[:query][:result]
fail_t sym, expected: expected, actual: actual unless condition.call expected, actual
end
|
#fail_t(sym, *args) ⇒ Object
71
72
73
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 71
def fail_t(sym, *args)
fail I18n.t locale(sym), *args
end
|
#locale(sym) ⇒ Object
75
76
77
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 75
def locale(sym)
'mumukit.interactive.' + sym.to_s
end
|
#normalize(a_string) ⇒ Object
79
80
81
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 79
def normalize(a_string)
a_string.delete(" \t\r\n").downcase
end
|
#render_success_output(_value) ⇒ Object
67
68
69
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 67
def render_success_output(_value)
I18n.t locale(:goal_passed)
end
|