Class: SqliteTestHook
- Inherits:
-
Mumukit::Templates::FileHook
- Object
- Mumukit::Templates::FileHook
- SqliteTestHook
- Includes:
- Sqlite::TestHelper
- Defined in:
- lib/test_hook.rb
Overview
This Hook allow to run Sqlite Worker from an ad-hoc program that receives .json files.
Instance Method Summary collapse
- #command_line(filename) ⇒ Object
-
#compile_file_content(request) ⇒ Object
Transform Mumuki Request into Docker file style.
-
#initialize(config = nil) ⇒ SqliteTestHook
constructor
A new instance of SqliteTestHook.
-
#post_process_file(_file, result, status) ⇒ Object
Transform Docker result into Response to Mumuki.
- #tempfile_extension ⇒ Object
Methods included from Sqlite::TestHelper
#load_tests, #set_test_parsers_hash
Constructor Details
#initialize(config = nil) ⇒ SqliteTestHook
Returns a new instance of SqliteTestHook.
11 12 13 14 |
# File 'lib/test_hook.rb', line 11 def initialize(config = nil) super(config) set_test_parsers_hash end |
Instance Method Details
#command_line(filename) ⇒ Object
20 21 22 |
# File 'lib/test_hook.rb', line 20 def command_line(filename) "runsql #{filename}" end |
#compile_file_content(request) ⇒ Object
Transform Mumuki Request into Docker file style
25 26 27 28 29 30 31 32 33 |
# File 'lib/test_hook.rb', line 25 def compile_file_content(request) tests = parse_tests request.test final = get_final_query { init: "#{request.extra&.strip}", student: "#{request.content&.strip}#{final}", tests: tests }.to_json end |
#post_process_file(_file, result, status) ⇒ Object
Transform Docker result into Response to Mumuki
36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/test_hook.rb', line 36 def post_process_file(_file, result, status) output = JSON.parse result case status when :passed expected, student = parse_output output framework.test expected, student when :failed [output['output'], status] else [output, status] end end |
#tempfile_extension ⇒ Object
16 17 18 |
# File 'lib/test_hook.rb', line 16 def tempfile_extension '.json' end |