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_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) ⇒ 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
Returns a new instance of InteractiveChecker.
4
5
6
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 4
def initialize(request)
@request = request
end
|
Instance Method Details
#check_last_query_equals(_result, goal) ⇒ Object
8
9
10
11
12
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 8
def check_last_query_equals(_result, goal)
expected = goal[:value]
actual = @request.query.strip
fail_t :check_last_query_equals, expected: expected, actual: actual unless expected == actual
end
|
#check_last_query_fails(result, _goal) ⇒ Object
19
20
21
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 19
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
14
15
16
17
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 14
def check_last_query_matches(_result, goal)
regex = goal[:regexp]
fail_t :check_last_query_matches, regex: regex.inspect unless regex.matches? @request.query
end
|
#check_last_query_output_includes(result, goal) ⇒ Object
27
28
29
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 27
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
31
32
33
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 31
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
23
24
25
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 23
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
41
42
43
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 41
def check_last_query_passes(result, _goal)
fail_t :check_last_query_passes unless result[:query][:status].passed?
end
|
#check_query_fails(result, goal) ⇒ Object
49
50
51
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 49
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
53
54
55
56
57
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 53
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
45
46
47
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 45
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
35
36
37
38
39
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 35
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
63
64
65
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 63
def fail_t(sym, *args)
fail I18n.t locale(sym), *args
end
|
#locale(sym) ⇒ Object
67
68
69
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 67
def locale(sym)
'mumukit.interactive.' + sym.to_s
end
|
#normalize(a_string) ⇒ Object
71
72
73
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 71
def normalize(a_string)
a_string.delete(" \t\r\n").downcase
end
|
#render_success_output(_value) ⇒ Object
59
60
61
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 59
def render_success_output(_value)
I18n.t locale(:goal_passed)
end
|