summaryrefslogtreecommitdiff
path: root/toxcreate.rb
diff options
context:
space:
mode:
Diffstat (limited to 'toxcreate.rb')
-rw-r--r--toxcreate.rb178
1 files changed, 127 insertions, 51 deletions
diff --git a/toxcreate.rb b/toxcreate.rb
index 8287140..de9ab59 100644
--- a/toxcreate.rb
+++ b/toxcreate.rb
@@ -4,26 +4,26 @@ require 'opentox-ruby'
require 'test/unit'
require 'akephalos'
require 'capybara/dsl'
-Capybara.default_driver = :akephalos
+Capybara.default_driver = :akephalos # use this without visual inspection
#Capybara.default_driver = :selenium # use this for visual inspection
Capybara.run_server = false
-Capybara.default_wait_time = 600
-
+Capybara.default_wait_time = 1000
+#Capybara.javascript_driver = :selenium
class ToxCreateTest < Test::Unit::TestCase
include Capybara
def setup
- @user = "test_ch"
- @password = "test_ch"
+ @user = "guest"
+ @password = "guest"
end
def teardown
end
=begin
- def test_login
+ def test_01_login
visit File.join(CONFIG[:services]["opentox-toxcreate"], "login")
click_on "Login"
puts "Login without credentials"
@@ -42,76 +42,150 @@ class ToxCreateTest < Test::Unit::TestCase
puts "Login as user guest"
assert page.has_content? "Welcome guest!"
end
-
-
- def test_predict # works only with selenium
- visit CONFIG[:services]["opentox-toxcreate"]
- click_on "Predict"
- fill_in "or enter a Name, InChI, Smiles, CAS, ...", :with => "NNc1ccccc1"
- check "hamster_carcinogenicity"
- click_button "Predict"
- assert page.has_content? "false"
- assert page.has_content? "0.294"
- click_on "Details"
- assert page.has_content? "0.875"
- end
=end
-
- def test_toxcreate # works only with akephalos
+ def test_02_toxcreate # works only with akephalos
+ Capybara.current_driver = :akephalos
#login(@browser, @user, @password)
visit CONFIG[:services]["opentox-toxcreate"]
assert page.has_content?('Upload training data')
- attach_file('file', "./data/hamster_carcinogenicity.csv")
+ attach_file('file', "./data/hamster_carcinogenicity.mini.csv")
click_on "Create model"
- assert first("h2").has_content? 'hamster_carcinogenicity'
+ assert first("h2").has_content? "hamster_carcinogenicity"
time = 0
- while first(".model_status").has_no_content?("Completed") and time < 120 do
+ while (first(".model_status").has_no_content?("Completed") and first(".model_status").has_no_content?("Error")) do
sleep 5
time +=5
end
assert first(".model_status").has_content?("Completed")
- click_on "Predict"
- fill_in "or enter a Name, InChI, Smiles, CAS, ...", :with => "NNc1ccccc1"
- check "hamster_carcinogenicity"
- #click_button "Predict"
+ end
+
+ def test_03_predict
+ Capybara.register_driver :akephalos do |app|
+ Capybara::Driver::Akephalos.new(app, :validate_scripts => false)
+ end
+ session = Capybara::Session.new(:akephalos)
+ session.visit CONFIG[:services]["opentox-toxcreate"]
+ session.click_on "Predict"
+ session.fill_in "or enter a Name, InChI, Smiles, CAS, ...", :with => "NNc1ccccc1"
+ session.check "hamster_carcinogenicity"
+ session.click_button "Predict"
+ assert session.has_content? "inactive"
+ session.click_on "Confidence"
+ assert session.has_content? "Indicates the applicability domain of a model"
+ session.click_on "Details"
+
#assert page.has_content? "false"
- #assert page.has_content? "0.294"
- #click_on "Details"
+ #assert page.has_content? "0.294"
#assert page.has_content? "0.875"
end
-
=begin
- def test_multi_cell_call
- login(@browser, @user, @password)
- @browser.goto CONFIG[:services]["opentox-toxcreate"]
- @browser.file_field(:id, "file").set(`pwd`.chomp+"/data/multi_cell_call.csv")
- @browser.button(:value, "Create model").click
- # wait until validation is completed
- # check results (links, reports, results)
- puts @browser.url
+ def test_04_inspect_policies
+ Capybara.current_driver = :selenium
+ visit CONFIG[:services]["opentox-toxcreate"]
+ click_on "Inspect"
+ assert first('h2').has_content? 'hamster_carcinogenicity'
+ click_on "edit"
+ click_on "manage policy"
+ within(:xpath, '//form[contains(@id, "form_policy_group_member_")]') do
+ find(:xpath, './/input[5]').click
+ click_on "update"
+ end
+ sleep 5
+ end
+
+ def test_05_inspect_policies
+ Capybara.current_driver = :selenium
+ visit CONFIG[:services]["opentox-toxcreate"]
+ click_on "Inspect"
+ assert first('h2').has_content? 'hamster_carcinogenicity'
+ click_on "edit"
+ click_on "manage policy"
+
+ within(:xpath, '//form[contains(@id, "form_policy_group_member_")]') do
+ find(:xpath, './/input[4]').click
+ click_on "update"
+ end
+ sleep 5
+ end
+
+ def test_06_inspect_policies
+ Capybara.current_driver = :selenium
+ visit CONFIG[:services]["opentox-toxcreate"]
+ click_on "Inspect"
+ assert first('h2').has_content? 'hamster_carcinogenicity'
+ click_on "edit"
+ click_on "manage policy"
+ within(:xpath, '//form[contains(@id, "form_development")]') do
+ find(:xpath, './/input[4]').click
+ click_on "add"
+ end
+ sleep 5
+ end
+
+ def test_07_inspect_policies
+ Capybara.current_driver = :selenium
+ visit CONFIG[:services]["opentox-toxcreate"]
+ click_on "Inspect"
+ assert first('h2').has_content? 'hamster_carcinogenicity'
+ click_on "edit"
+ click_on "manage policy"
+ within(:xpath, '//form[contains(@id, "form_policy_group_development_")]') do
+ find(:xpath, './/input[3]').click
+ click_on "update"
+ end
+ sleep 5
+ page.evaluate_script('window.confirm = function() { return true; }')
+ click_on "delete"
+ end
+
+=begin
+ def test_08_multi_cell_call
+ #login(@browser, @user, @password)
+ Capybara.current_driver = :akephalos
+ visit CONFIG[:services]["opentox-toxcreate"]
+ assert page.has_content?('Upload training data')
+ attach_file('file', "./data/multi_cell_call.csv")
+ click_on "Create model"
end
- def test_kazius
- login(@browser, @user, @password)
- @browser.goto CONFIG[:services]["opentox-toxcreate"]
- @browser.file_field(:id, "file").set(`pwd`.chomp+"/data/kazius.csv")
- @browser.button(:value, "Create model").click
+ def test_09_kazius
+ Capybara.current_driver = :akephalos
+ #login(@browser, @user, @password)
+ visit CONFIG[:services]["opentox-toxcreate"]
+ assert page.has_content?('Upload training data')
+ attach_file('file', "./data/kazius.csv")
# wait until validation is completed
# check results (links, reports, results)
puts @browser.url
end
- def test_parallel_models
- login(@browser, @user, @password)
+ def test_10_parallel_models
+ #login(@browser, @user, @password)
10.times do
- @browser.goto CONFIG[:services]["opentox-toxcreate"]
- @browser.file_field(:id, "file").set(`pwd`.chomp+"/data/hamster_carcinogenicity.csv")
- @browser.button(:value, "Create model").click
+ visit CONFIG[:services]["opentox-toxcreate"]
+ assert page.has_content?('Upload training data')
+ attach_file('file', "./data/multi_cell_call.csv")
+ click_on "Create model"
+ end
+ end
+ # raises capybara errors, but gui works from browser
+ def test_11_toxcreate_sdf # works only with akephalos
+ Capybara.current_driver = :akephalos
+ #login(@browser, @user, @password)
+ visit CONFIG[:services]["opentox-toxcreate"]
+ assert page.has_content?('Upload training data')
+ attach_file('file', "./data/hamster_carcinogenicity.sdf")
+ click_on "Create model"
+ assert first("h2").has_content? "hamster_carcinogenicity"
+ time = 0
+ while first(".model_status").has_no_content?("Completed") do
+ sleep 5
+ time +=5
end
- #@browser.close
+ assert first(".model_status").has_content?("Completed")
end
=end
-end
+
=begin
def login(browser, user, password)
@@ -120,4 +194,6 @@ def login(browser, user, password)
browser.text_field(:id, "password").set(password)
browser.button(:value, "Login").click
end
+
=end
+end