diff options
author | Micha Rautenberg <rautenberg@in-silico.ch> | 2015-09-21 12:48:22 +0200 |
---|---|---|
committer | Micha Rautenberg <rautenberg@in-silico.ch> | 2015-09-21 12:48:22 +0200 |
commit | d585d5d899cd6446d01c7f77b57efa7cd202aa16 (patch) | |
tree | e98df6057ad25047049a782dbaa781ce93c9b59a | |
parent | 223c4d6b589eff17dcd3c19ed611aa262dc0009a (diff) |
add tests to create and delete
-rw-r--r-- | application.rb | 25 | ||||
-rw-r--r-- | test/model.rb | 32 |
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 |