summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicha Rautenberg <rautenberg@in-silico.ch>2015-09-21 12:48:22 +0200
committerMicha Rautenberg <rautenberg@in-silico.ch>2015-09-21 12:48:22 +0200
commitd585d5d899cd6446d01c7f77b57efa7cd202aa16 (patch)
treee98df6057ad25047049a782dbaa781ce93c9b59a
parent223c4d6b589eff17dcd3c19ed611aa262dc0009a (diff)
add tests to create and delete
-rw-r--r--application.rb25
-rw-r--r--test/model.rb32
2 files changed, 50 insertions, 7 deletions
diff --git a/application.rb b/application.rb
index 2eb8112..46c08af 100644
--- a/application.rb
+++ b/application.rb
@@ -1,6 +1,7 @@
include OpenTox
require 'rack/cors'
+#require_relative "helper.rb"
# add CORS support for swagger
use Rack::Cors do |config|
@@ -35,5 +36,29 @@ get "/model/?" do
case @accept
when "text/uri-list"
return uri_list.join("\n") + "\n"
+ else
+ bad_request_error "Mime type #{@accept} is not supported."
end
end
+
+get "/model/:id/?" do
+ @model = OpenTox::Model::Lazar.find params[:id]
+ return @model.to_json
+end
+
+post "/model/?" do
+ parse_input
+ case @content_type
+ when "text/csv", "text/comma-separated-values"
+ model = OpenTox::Model::Prediction.from_csv_file @body
+ else
+ bad_request_error "Mime type #{@content_type} is not supported."
+ end
+ response['Content-Type'] = "text/uri-list"
+ model.model_id
+end
+
+delete "model/:id/?" do
+ model = OpenTox::Model::Lazar.find params[:id]
+ model.delete
+end
diff --git a/test/model.rb b/test/model.rb
index 3af14c3..3b83bed 100644
--- a/test/model.rb
+++ b/test/model.rb
@@ -1,17 +1,35 @@
require_relative "setup.rb"
-
+$model_uri = "https://mr-test.in-silico.ch/model"
class ModelTest < MiniTest::Test
- def test_0_get_urilist
- res = RestClientWrapper.get $model_uri,,{:Accept => "text/uri-list"}
+ def test_00_get_urilist
+ res = RestClientWrapper.get $model_uri, {}, {:accept => "text/uri-list"}
+ assert_equal res.code, 200
+ end
+
+ def test_01_get_400
+ assert_raises OpenTox::BadRequestError do
+ res = OpenTox::RestClientWrapper.get $model_uri, {}, {:accept => "text/notimplemented-type"}
+ end
+ end
+
+ # create a model
+ def test_02_create
+ file = "../../lazar/test/data/hamster_carcinogenicity.csv"
+ res = OpenTox::RestClientWrapper.post $model_uri, {:file => File.open(file)}, {:content_type => "text/csv"}
assert_equal res.code, 200
+ @@model = res
end
- def test_0_get_notsupported
- res = RestClientWrapper.get $model_uri,,{:Accept => "text/notimplemented-type"}
- assert_equal res.code, 400
+ def test_90_delete
+ res = OpenTox::RestClientWrapper.delete @@model
+ assert_equal res.code, 200
+ assert_raises OpenTox::NotFoundError do
+ res = OpenTox::RestClientWrapper.get @@model, {}, {:accept => "application/json"}
+ end
+
end
-end \ No newline at end of file
+end