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

#collect_tests, #fail!, #parsers

Instance Method Details

#command_line(filename) ⇒ Object



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

def command_line(filename)
  "runsql #{filename}"
end

#compile_file_content(request) ⇒ Object

Transform Mumuki Request into Docker file style



20
21
22
23
24
25
26
27
28
# File 'lib/test_hook.rb', line 20

def compile_file_content(request)
  parse_tests request.test
  student_code = parse_student_code "#{request.content&.strip}#{get_final_query}"
  {
      init:    "#{request.extra&.strip}",
      student: student_code,
      tests:   get_tests
  }.to_json
end

#post_process_file(_file, result, status) ⇒ Object

Transform Docker result into Response to Mumuki



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/test_hook.rb', line 31

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



11
12
13
# File 'lib/test_hook.rb', line 11

def tempfile_extension
  '.json'
end