diff options
Diffstat (limited to 'test/unit_test.rb')
-rw-r--r-- | test/unit_test.rb | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/test/unit_test.rb b/test/unit_test.rb deleted file mode 100644 index 11b0759..0000000 --- a/test/unit_test.rb +++ /dev/null @@ -1,189 +0,0 @@ -#TEST_USER = "mgtest" -#TEST_PW = "mgpasswd" -#ENV['RACK_ENV'] = 'test' - -require "rubygems" -require "sinatra" -require "uri" -require "yaml" -require 'application.rb' -require 'test/unit' -require 'rack/test' -require 'lib/test_util.rb' -require 'test/test_examples.rb' - -TEST_USER = "guest" -TEST_PW = "guest" - -#LOGGER = OTLogger.new(STDOUT) -#LOGGER.datetime_format = "%Y-%m-%d %H:%M:%S " -#LOGGER.formatter = Logger::Formatter.new - -module Sinatra - set :raise_errors, false - set :show_exceptions, false -end - -class Exception - def message - errorCause ? errorCause.to_yaml : to_s - end -end - -class ValidationTest < Test::Unit::TestCase - include Rack::Test::Methods - include Lib::TestUtil - - def global_setup - puts "login and upload datasets" - if AA_SERVER - @@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 - f = File.new("data/hamster_carcinogenicity.mini.csv") - @@data_class_mini = ValidationExamples::Util.upload_dataset(f, @@subjectid) - @@feat_class_mini = ValidationExamples::Util.prediction_feature_for_file(f) - end - - def global_teardown - puts "delete and logout" - OpenTox::Dataset.find(@@data_class_mini,@@subjectid).delete(@@subjectid) if defined?@@data_class_mini - @@cv.delete(@@subjectid) if defined?@@cv - @@report.delete(@@subjectid) if defined?@@report - @@qmrfReport.delete(@@subjectid) if defined?@@qmrfReport - OpenTox::Authorization.logout(@@subjectid) if AA_SERVER - end - - def test_crossvalidation - puts "test_crossvalidation" - #assert_rest_call_error OpenTox::NotFoundError do - # OpenTox::Crossvalidation.find(File.join(CONFIG[:services]["opentox-validation"],"crossvalidation/noexistingid")) - #end - p = { - :dataset_uri => @@data_class_mini, - :algorithm_uri => File.join(CONFIG[:services]["opentox-algorithm"],"lazar"), - :algorithm_params => "feature_generation_uri="+File.join(CONFIG[:services]["opentox-algorithm"],"fminer/bbrc"), - :prediction_feature => @@feat_class_mini, - :num_folds => 2 } - t = OpenTox::SubTask.new(nil,0,1) - def t.progress(pct) - if !defined?@last_msg or @last_msg+3<Time.new - puts "waiting for crossvalidation: "+pct.to_s - @last_msg=Time.new - end - end - def t.waiting_for(task_uri); end - cv = OpenTox::Crossvalidation.create(p, @@subjectid, t) - assert cv.uri.uri? - if @@subjectid - assert_rest_call_error OpenTox::NotAuthorizedError do - OpenTox::Crossvalidation.find(cv.uri) - end - end - cv = OpenTox::Crossvalidation.find(cv.uri, @@subjectid) - assert cv.uri.uri? - if @@subjectid - assert_rest_call_error OpenTox::NotAuthorizedError do - cv.summary(cv) - end - end - summary = cv.summary(@@subjectid) - assert_kind_of Hash,summary - @@cv = cv - end - - def test_crossvalidation_report - #@@cv = OpenTox::Crossvalidation.find("http://local-ot/validation/crossvalidation/48", @@subjectid) - - puts "test_crossvalidation_report" - assert defined?@@cv,"no crossvalidation defined" - assert_kind_of OpenTox::Crossvalidation,@@cv - #assert_rest_call_error OpenTox::NotFoundError do - # OpenTox::CrossvalidationReport.find_for_crossvalidation(@@cv.uri) - #end - if @@subjectid - assert_rest_call_error OpenTox::NotAuthorizedError do - OpenTox::CrossvalidationReport.create(@@cv.uri) - end - end - report = OpenTox::CrossvalidationReport.create(@@cv.uri,@@subjectid) - assert report.uri.uri? - if @@subjectid - assert_rest_call_error OpenTox::NotAuthorizedError do - OpenTox::CrossvalidationReport.find(report.uri) - end - end - report = OpenTox::CrossvalidationReport.find(report.uri,@@subjectid) - assert report.uri.uri? - report2 = OpenTox::CrossvalidationReport.find_for_crossvalidation(@@cv.uri,@@subjectid) - assert_equal report.uri,report2.uri - report3_uri = @@cv.find_or_create_report(@@subjectid) - assert_equal report.uri,report3_uri - @report = report2 - end - - def test_qmrf_report - #@@cv = OpenTox::Crossvalidation.find("http://local-ot/validation/crossvalidation/47", @@subjectid) - - puts "test_qmrf_report" - assert defined?@@cv,"no crossvalidation defined" - - validations = @@cv.metadata[OT.validation] - assert_kind_of Array,validations - assert validations.size==@@cv.metadata[OT.numFolds] - - val = OpenTox::Validation.find(validations[0], @@subjectid) - model_uri = val.metadata[OT.model] - model = OpenTox::Model::Generic.find(model_uri, @@subjectid) - assert model!=nil - - #assert_rest_call_error OpenTox::NotFoundError do - # OpenTox::QMRFReport.find_for_model(model_uri, @@subjectid) - #end - - @@qmrfReport = OpenTox::QMRFReport.create(model_uri, @@subjectid) - end - - ################### utils and overrides ########################## - - def app - Sinatra::Application - end - - # checks RestCallError type - def assert_rest_call_error( ex ) - if ex==OpenTox::NotAuthorizedError and @@subjectid==nil - puts "AA disabled: skipping test for not authorized" - return - end - begin - yield - rescue OpenTox::RestCallError => e - report = e.errorCause - while report.errorCause - report = report.errorCause - end - assert_equal report.errorType,ex.to_s - end - end - - # hack to have a global_setup and global_teardown - def teardown - if((@@expected_test_count-=1) == 0) - global_teardown - end - end - def setup - unless defined?@@expected_test_count - @@expected_test_count = (self.class.instance_methods.reject{|method| method[0..3] != 'test'}).length - global_setup - end - end - -end - - |