Class: SqliteTestHook

Inherits:
Mumukit::Templates::FileHook
  • Object
show all
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

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_extensionObject



16
17
18
# File 'lib/test_hook.rb', line 16

def tempfile_extension
  '.json'
end