summaryrefslogtreecommitdiff
path: root/test/opentox-ruby-api-wrapper_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/opentox-ruby-api-wrapper_test.rb')
-rw-r--r--test/opentox-ruby-api-wrapper_test.rb63
1 files changed, 60 insertions, 3 deletions
diff --git a/test/opentox-ruby-api-wrapper_test.rb b/test/opentox-ruby-api-wrapper_test.rb
index 6f7f82e..256a06a 100644
--- a/test/opentox-ruby-api-wrapper_test.rb
+++ b/test/opentox-ruby-api-wrapper_test.rb
@@ -1,7 +1,64 @@
require 'test_helper'
class OpentoxRubyApiWrapperTest < Test::Unit::TestCase
- should "probably rename this file and start testing for real" do
- flunk "hey buddy, you should probably rename this file and start testing for real"
- end
+
+ def setup
+ @pids = []
+ port = 5000
+ [ "opentox-compound", "opentox-feature" , "opentox-dataset" , "opentox-fminer" , "opentox-lazar" ].each do |component|
+ ENV[component.upcase.gsub(/-/,'_')] = "http://localhost:#{port}/"
+=begin
+ Dir.chdir ENV['HOME'] + '/webservices/' + component
+ Dir["test.sqlite3"].each { |f| FileUtils.rm_rf(f) }
+ file = 'application.rb'
+ @pids << fork {`urxvt -title #{component} -e thin --debug --rackup config.ru start -p #{port} -e test`}
+ Process.detach(@pids.last)
+=end
+ port += 1
+ end
+ end
+
+=begin
+ def teardown
+ @pids.each do |pid|
+ begin
+ Process.kill(9,pid)
+ puts "killed " + pid.to_s
+ rescue
+ puts "failed to kill process" + pid.to_s
+ end
+ end
+ end
+=end
+
+ def test_create_dataset_and_model_and_make_a_prediction
+ #sleep 15
+ dataset = OpenTox::Dataset.new :name => "Hamster Carcinogenicity", :filename => "test/hamster_carcinogenicity.csv"
+ puts dataset.uri
+ wait_for_completion dataset
+ assert_match(/#{ENV['OPENTOX_DATASET']}\d+$/,dataset.uri)
+ assert_equal("Hamster Carcinogenicity",dataset.name)
+ lazar = OpenTox::Lazar.new :dataset_uri => dataset.uri
+ puts lazar.uri
+ wait_for_completion lazar
+ assert_match(/#{ENV['OPENTOX_LAZAR']}model\/\d+$/,lazar.uri)
+ query_structure = OpenTox::Compound.new :smiles => 'c1ccccc1NN'
+ prediction = lazar.predict query_structure
+ puts prediction.uri
+ wait_for_completion prediction
+ puts prediction.to_yaml
+ assert_equal(true, prediction.classification)
+ assert_match(/\d+/, prediction.classification)
+ end
+
+end
+
+def wait_for_completion(object)
+ timeout = 60
+ time = 0
+ while (!object.finished? and time < timeout)
+ sleep 1
+ time += 1
+ end
+ puts "timeout" if timeout >= 60
end