test.rake revision 1c98fd985ee711ad05ba5270bcd9136fb1ad7d8c
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornbergernamespace :test do
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger # We want to purge our database our own way, without deleting everything
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger Rake::Task['db:test:purge'].overwrite do
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger # Taken from https://github.com/rails/rails/blob/3-2-stable/activerecord/lib/active_record/railties/databases.rake#L512
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations['test'])
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger Rake::Task['db:redis:clean'].invoke
802014878b7383de536e4fa0ceced1bce3217eadDaniel Couto Vale Rake::Task['db:migrate:clean'].invoke
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger `which hets`.strip
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger def hets_out_file_for(ontology_file)
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger basename = File.basename(ontology_file).sub(/\.[^.]+$/, '.xml')
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger File.join('spec/fixtures/ontologies/hets-out/', basename)
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger def on_outdated_files(files, &block)
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger hets_file = hets_out_file_for(file)
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger out_of_date = !FileUtils.uptodate?(hets_file, Array(hets_path))
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger block.call(file) if out_of_date
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger YAML.load(File.open('config/hets.yml'))['cmd_line_options']
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger def perform_hets_on(file)
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger args = hets_args << '-O spec/fixtures/ontologies/hets-out'
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger system("hets #{args.join(' ')} #{file}")
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger def ontology_files
736e78aff9e67436c35d4835c24fca667f3cadf3Julian Kornberger globbed_files = Dir.glob('spec/fixtures/ontologies/**/*')
555b7fd96768daf9592e7ddbd4217d784b08e451henning mueller def prove_files
555b7fd96768daf9592e7ddbd4217d784b08e451henning mueller globbed_files = Dir.glob('spec/fixtures/ontologies/prove/**/*')
555b7fd96768daf9592e7ddbd4217d784b08e451henning mueller !file.end_with?('.proof.json') && !File.directory?(file)
1cbb38d1d07f559b4a1c012a4833513053716007Daniel Couto Vale def prove_with_hets(file)
1cbb38d1d07f559b4a1c012a4833513053716007Daniel Couto Vale puts "Calling hets prover for #{file}"
c997297b21c83680cdba2953cad369b82a5b8805Tim Reddehase absolute_filepath = Rails.root.join(file)
escaped_iri = Rack::Utils.escape_path("file://#{absolute_filepath}")
command += ['-H', %('Content-Type: application/json')]
command << "http://localhost:8000/prove/#{escaped_iri}"
command = command.join(' ')
filename = File.basename(file).split('.')[0..-2].join('.')
prove_files.each { |file| prove_with_hets(file) }
Process.kill('TERM', hets_pid)