diff options
Diffstat (limited to 'validation/validation_test.rb')
-rwxr-xr-x[-rw-r--r--] | validation/validation_test.rb | 352 |
1 files changed, 316 insertions, 36 deletions
diff --git a/validation/validation_test.rb b/validation/validation_test.rb index cbaa84b..ffb25c4 100644..100755 --- a/validation/validation_test.rb +++ b/validation/validation_test.rb @@ -1,3 +1,11 @@ + +require "rubygems" +require "sinatra" +before { + request.env['HTTP_HOST']="local-ot/validation" + request.env["REQUEST_URI"]=request.env["PATH_INFO"] +} + require "uri" require "yaml" ENV['RACK_ENV'] = 'test' @@ -7,70 +15,338 @@ require 'rack/test' require 'lib/test_util.rb' require 'test/test_examples.rb' -LOGGER = MyLogger.new(STDOUT) +LOGGER = OTLogger.new(STDOUT) LOGGER.datetime_format = "%Y-%m-%d %H:%M:%S " LOGGER.formatter = Logger::Formatter.new +if AA_SERVER + TEST_USER = "mgtest" + TEST_PW = "mgpasswd" + #TEST_USER = "guest" + #TEST_PW = "guest" + SUBJECTID = OpenTox::Authorization.authenticate(TEST_USER,TEST_PW) + raise "could not log in" unless SUBJECTID + puts "logged in: "+SUBJECTID.to_s +else + puts "AA disabled" + SUBJECTID = nil +end + +#Rack::Test::DEFAULT_HOST = "local-ot" #"/validation" +module Sinatra + + set :raise_errors, false + set :show_exceptions, false + + module UrlForHelper + BASE = "http://local-ot/validation" + def url_for url_fragment, mode=:path_only + case mode + when :path_only + raise "not impl" + when :full + end + "#{BASE}#{url_fragment}" + end + end +end + class ValidationTest < Test::Unit::TestCase include Rack::Test::Methods include Lib::TestUtil def test_it - $test_case = self + begin + $test_case = self + +# prediction_feature = "https://ambit.uni-plovdiv.bg:8443/ambit2/feature/26221" +# puts OpenTox::Feature.find(prediction_feature).domain.inspect +# exit + +# begin +# #OpenTox::RestClientWrapper.get "http://local-ot/validation/runtime-error",{:accept => "application/rdf+xml"} +# puts OpenTox::RestClientWrapper.post "http://opentox.ntua.gr:4000/model/0d8a9a27-3481-4450-bca1-d420a791de9d", +# { :asdfasdf => "asdfasdf" } #{:dataset=>"http://apps.ideaconsult.net:8080/ambit2/dataset/54?max=2"}, +# { :accept => "text/uri-list", :subjectid => SUBJECTID } +# #puts OpenTox::RestClientWrapper.post "http://opentox.ntua.gr:4000/model/0d8a9a27-3481-4450-bca1-d420a791de9d",{},{:accept => "text/uri-list", :subjectid => "AQIC5wM2LY4SfcwUNX97nTvaSTdYJ+nTUqZsR0UitJ4+jlc=@AAJTSQACMDE=#"} +# rescue => err +# rep = OpenTox::ErrorReport.create(err, "") +# puts rep.to_yaml +# end + + # "http://opentox.ntua.gr:4000/model/0d8a9a27-3481-4450-bca1-d420a791de9d" + +# get "/19999",nil,'HTTP_ACCEPT' => "text/html" +# exit +# +# get "/234234232341",nil,'HTTP_ACCEPT' => "application/x-yaml" +# puts last_response.body +## +# get "/crossvalidation/1",nil,'HTTP_ACCEPT' => "application/rdf+xml" +# puts last_response.body +# exit + + # d = OpenTox::Dataset.find("http://ot-dev.in-silico.ch/dataset/307") + # puts d.compounds.inspect + # exit + + #get "?model=http://local-ot/model/1" + # get "/crossvalidation/3/predictions" + # puts last_response.body + + # post "/validate_datasets",{ + # :test_dataset_uri=>"http://apps.deaconsult.net:8080/ambit2/dataset/R3924", + # :prediction_dataset_uri=>"http://apps.ideaconsult.net:8080/ambit2/dataset/R3924?feature_uris[]=http%3A%2F%2Fapps.ideaconsult.net%3A8080%2Fambit2%2Fmodel%2F52%2Fpredicted", + # #:test_target_dataset_uri=>"http://local-ot/dataset/202", + # :prediction_feature=>"http://apps.ideaconsult.net:8080/ambit2/feature/21715", + # :predicted_feature=>"http://apps.ideaconsult.net:8080/ambit2/feature/28944", + # :regression=>"true"} + # #:classification=>"true"} + # puts last_response.body + + #post "/crossvalidation/cleanup" + #puts last_response.body + + #get "/crossvalidation/19/predictions",nil,'HTTP_ACCEPT' => "application/x-yaml" #/statistics" + # post "",:model_uri=>"http://local-ot/model/1",:test_dataset_uri=>"http://local-ot/dataset/3", + # :test_target_dataset_uri=>"http://local-ot/dataset/1" + + # get "/crossvalidation/2",nil,'HTTP_ACCEPT' => "application/rdf+xml" + #puts last_response.body + #exit - #get "/crossvalidation/4/statistics" -# post "",:model_uri=>"http://localhost/model/1",:test_dataset_uri=>"http://localhost/dataset/3", -# :test_target_dataset_uri=>"http://localhost/dataset/1" +# OpenTox::Crossvalidation.create( +# :dataset_uri=>"http://local-ot/dataset/1874", +# :algorithm_uri=>"http://local-ot/algorithm/lazar", +# :prediction_feature=>"http://local-ot/dataset/1874/feature/Hamster%20Carcinogenicity", +# :algorithm_params=>"feature_generation_uri=http://local-ot/algorithm/fminer/bbrc") - #get "/crossvalidation/1",nil,'HTTP_ACCEPT' => "application/rdf+xml" - #puts last_response.body - -# post "/test_validation",:select=>"6d" #,:report=>"yes,please" -# puts last_response.body - -# post "/validate_datasets",{ -# :test_dataset_uri=>"http://localhost/dataset/204", -# :prediction_dataset_uri=>"http://localhost/dataset/206", -# :test_target_dataset_uri=>"http://localhost/dataset/202", -# :prediction_feature=>"http://ot-dev.in-silico.ch/toxcreate/feature#IRIS%20unit%20risk", -# :predicted_feature=>"http://ot-dev.in-silico.ch/toxcreate/feature#IRIS%20unit%20risk_lazar_regression", -# :regression=>"true"} -# #:classification=>"true"} -# puts last_response.body - - run_test("3b" ) #, "http://localhost/validation/826") #,"http://localhost/validation/report/validation/36") #, "http://localhost/validation/321") - - #run_test("7a") #,"http://localhost/validation/crossvalidation/10") #, "http://localhost/validation/321") - - #run_test("8b", "http://localhost/validation/crossvalidation/4") - - #puts Nightly.build_nightly("1") +#http://local-ot/dataset/1878 + + #get "/crossvalidation?model_uri=lazar" + # post "/test_validation",:select=>"6d" #,:report=>"yes,please" + #puts last_response.body + + # post "/validate_datasets",{ + # :test_dataset_uri=>"http://local-ot/dataset/204", + # :prediction_dataset_uri=>"http://local-ot/dataset/206", + # :test_target_dataset_uri=>"http://local-ot/dataset/202", + # :prediction_feature=>"http://ot-dev.in-silico.ch/toxcreate/feature#IRIS%20unit%20risk", + # :predicted_feature=>"http://ot-dev.in-silico.ch/toxcreate/feature#IRIS%20unit%20risk_lazar_regression", + # :regression=>"true"} + # #:classification=>"true"} + # puts last_response.body + + # post "/validate_datasets",{ + # :test_dataset_uri=>"http://local-ot/dataset/89", + # :prediction_dataset_uri=>"http://local-ot/dataset/91", + # :test_target_dataset_uri=>"http://local-ot/dataset/87", + # :prediction_feature=>"http://local-ot/dataset/1/feature/hamster_carcinogenicity", + # :predicted_feature=>"", + ## :regression=>"true"} + # :classification=>"true"} + # puts last_response.body + + # m = OpenTox::Model::Generic.find("http://local-ot/model/1323333") + # puts m.to_yaml + +# post "/validate_datasets",{ +# :test_dataset_uri=>"http://local-ot/dataset/390", +# :prediction_dataset_uri=>"http://local-ot/dataset/392", +# :test_target_dataset_uri=>"http://local-ot/dataset/388", +# :prediction_feature=>"http://local-ot/dataset/388/feature/repdose_classification", +# :model_uri=>"http://local-ot/model/31"} +# #:regression=>"true"} +# # :classification=>"true"} +# uri = last_response.body +# val = wait_for_task(uri) +# puts val +# get "/"+val.split("/")[-1] + +# post "/validate_datasets",{ +# :test_dataset_uri=>"http://opentox.informatik.uni-freiburg.de/dataset/409", +# :prediction_dataset_uri=>"http://opentox.informatik.uni-freiburg.de/dataset/410", +# :test_target_dataset_uri=>"https://ambit.uni-plovdiv.bg:8443/ambit2/dataset/R401560", +# :prediction_feature=>"https://ambit.uni-plovdiv.bg:8443/ambit2/feature/22190", +# :predicted_feature=>"https://ambit.uni-plovdiv.bg:8443/ambit2/feature/218304", +# :regression=>"true", +# :subjectid=>SUBJECTID} +# #:model_uri=>"http://local-ot/model/31"} +# #:regression=>"true"} +# # :classification=>"true"} +# uri = last_response.body +# val = wait_for_task(uri) +# puts val +# #get "/"+val.split("/")[-1] + + + + #ambit_service = "https://ambit.uni-plovdiv.bg:8443/ambit2" + #https%3A%2F%2Fambit.uni-plovdiv.bg%3A8443%2Fambit2 + +# post "/validate_datasets",{ +# :test_dataset_uri=>ambit_service+"/dataset/R401577?max=50", +# :prediction_dataset_uri=>ambit_service+"/dataset/R401577?max=50&feature_uris[]="+CGI.escape(ambit_service)+"%2Fmodel%2F35194%2Fpredicted", +# #:test_target_dataset_uri=>ambit_service+"/dataset/R401560", +# :prediction_feature=>ambit_service+"/feature/26221", +# :predicted_feature=>ambit_service+"/feature/218699", +# :classification=>"true", +# :subjectid=>SUBJECTID} +# #:model_uri=>"http://local-ot/model/31"} +# #:regression=>"true"} +# # :classification=>"true"} +# uri = last_response.body +# val = wait_for_task(uri) +# puts val +# #get "/"+val.split("/")[-1] + + +# d = OpenTox::Dataset.find("https://ambit.uni-plovdiv.bg:8443/ambit2/dataset/R545",SUBJECTID) +# puts d.compounds.inspect +# exit + +# f = File.new("data/ambit-dataset.rdf") +# d = ValidationExamples::Util.upload_dataset(f, SUBJECTID) +# puts d + +# d = OpenTox::Dataset.find("https://ambit.uni-plovdiv.bg:8443/ambit2/dataset/R401560",SUBJECTID) +# #puts d.compounds.to_yaml +# #puts d.features.keys.to_yaml +# puts d.to_yaml +# d2 = d.split(d.compounds[0..5], d.features.keys[0..1], {}, SUBJECTID) +# puts d2.to_yaml + + # run_test("1b")#,:validation_uri=>"http://local-ot/validation/253") #,"http://local-ot/validation/28")#,"http://local-ot/validation/394"); + + #run_test("3b",:validation_uri=>"http://local-ot/validation/crossvalidation/45") #,{:dataset_uri => "http://local-ot/dataset/773", :prediction_feature => "http://local-ot/dataset/773/feature/Hamster%20Carcinogenicity"}) + +# p = { +# :dataset_uri=>"http://local-ot/dataset/527", +# :algorithm_uri => "http://local-ot/majority/class/algorithm", +# :prediction_feature=>"http://local-ot/dataset/527/feature/Hamster%20Carcinogenicity", +# :num_folds => 2 } + #cv = OpenTox::Crossvalidation.create(p, SUBJECTID) +# cv = OpenTox::Crossvalidation.find("http://local-ot/validation/crossvalidation/17", SUBJECTID) +# puts cv.uri +## puts cv.find_or_create_report.uri +# puts cv.summary(SUBJECTID).inspect + + #puts OpenTox::Authorization.list_policy_uris(SUBJECTID).inspect + + #puts OpenTox::Authorization.list_policy_uris(SUBJECTID).inspect + + #run_test("19d") #,{:dataset_uri => "http://local-ot/dataset/313", :prediction_feature => "http://local-ot/dataset/313/feature/repdose_classification"}) + +# model = OpenTox::Model::Generic.find("http://local-ot/majority/class/model/58") +# OpenTox::QMRFReport.create(model) + + + #get "/12123123123123123" + #get "/chain" + + #OpenTox::RestClientWrapper.get("http://local-ot/validation/task-error") + #get "/error",nil,'HTTP_ACCEPT' => "application/rdf+xml" + #puts "" + #puts "" + #puts last_response.body + #exit + +# get "/error" +# puts last_response.body + + #delete "/1",:subjectid=>SUBJECTID + + run_test("19i") + + #run_test("3a","http://local-ot/validation/crossvalidation/4") + #run_test("3b","http://local-ot/validation/crossvalidation/3") + + #run_test("8a", "http://local-ot/validation/crossvalidation/6") + #run_test("8b", "http://local-ot/validation/crossvalidation/5") + + #run_test("11b", "http://local-ot/validation/crossvalidation/2" )# //local-ot/validation/42")#, "http://local-ot/validation/report/validation/8") #,"http://local-ot/validation/report/validation/36") #, "http://local-ot/validation/321") + # run_test("7a","http://local-ot/validation/40") #,"http://local-ot/validation/crossvalidation/10") #, "http://local-ot/validation/321") + #run_test("8b", "http://local-ot/validation/crossvalidation/4") + + #puts Nightly.build_nightly("1") + + #prepare_examples + #do_test_examples # USES CURL, DO NOT FORGET TO RESTART VALIDATION SERVICE + #do_test_examples_ortona - #prepare_examples - #do_test_examples # USES CURL, DO NOT FORGET TO RESTART VALIDATION SERVICE + rescue => ex + rep = OpenTox::ErrorReport.create(ex, "") + puts rep.to_yaml + ensure + #OpenTox::Authorization.logout(SUBJECTID) if AA_SERVER + end end def app Sinatra::Application end - def run_test(select, validation_uri=nil) + def run_test(select=nil, overwrite={}, delete=false ) + + if AA_SERVER && SUBJECTID && delete + policies_before = OpenTox::Authorization.list_policy_uris(SUBJECTID) + end + + puts ValidationExamples.list unless select validationExamples = ValidationExamples.select(select) validationExamples.each do |vv| vv.each do |v| ex = v.new - ex.validation_uri = validation_uri + ex.subjectid = SUBJECTID + + overwrite.each do |k,v| + ex.send(k.to_s+"=",v) + end + unless ex.validation_uri ex.upload_files ex.check_requirements ex.validate - LOGGER.debug "validation done "+ex.validation_uri.to_s + + LOGGER.debug "validation done '"+ex.validation_uri.to_s+"'" + end + if !delete and ex.validation_uri + if SUBJECTID + puts ex.validation_uri+"?subjectid="+CGI.escape(SUBJECTID) + else + puts ex.validation_uri + end + end + + unless ex.report_uri + ex.report + end + if !delete and ex.report_uri + if SUBJECTID + puts ex.report_uri+"?subjectid="+CGI.escape(SUBJECTID) + else + puts ex.report_uri + end end - ex.verify_yaml - ex.report + ##ex.verify_yaml + ##ex.compare_yaml_vs_rdf + ex.delete if delete end end + + if AA_SERVER && SUBJECTID && delete + policies_after= OpenTox::Authorization.list_policy_uris(SUBJECTID) + diff = policies_after.size - policies_before.size + if (diff != 0) + policies_before.each do |k,v| + policies_after.delete(k) + end + LOGGER.warn diff.to_s+" policies NOT deleted:\n"+policies_after.collect{|k,v| k.to_s+" => "+v.to_s}.join("\n") + else + LOGGER.debug "all policies deleted" + end + end end def prepare_examples @@ -78,7 +354,11 @@ class ValidationTest < Test::Unit::TestCase end def do_test_examples # USES CURL, DO NOT FORGET TO RESTART - get '/test_examples' + post '/test_examples' + end + + def do_test_examples_ortona + post '/test_examples',:examples=>"http://ortona.informatik.uni-freiburg.de/validation/examples" end end |