1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
require 'rubygems'
require "rubygems"
require 'opentox-ruby'
require 'test/unit'
require 'akephalos'
require 'capybara/dsl'
Capybara.default_driver = :akephalos
#Capybara.default_driver = :selenium # use this for visual inspection
Capybara.run_server = false
Capybara.default_wait_time = 600
class ToxCreateTest < Test::Unit::TestCase
include Capybara
def setup
@user = "test_ch"
@password = "test_ch"
end
def teardown
end
=begin
def test_login
visit File.join(CONFIG[:services]["opentox-toxcreate"], "login")
click_on "Login"
puts "Login without credentials"
assert page.has_content? "Please enter username and password."
fill_in('Username', :with => @user)
fill_in('Password', :with => @password + "nonsense")
click_on "Login"
puts "Login with wrong password"
assert page.has_content? "Login failed. Please try again."
fill_in('Username', :with => @user)
fill_in('Password', :with => @password)
click_on "Login"
assert page.has_content? "Welcome #{@user}!"
visit File.join(CONFIG[:services]["opentox-toxcreate"], "login")
click_on "Login as guest"
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
#login(@browser, @user, @password)
visit CONFIG[:services]["opentox-toxcreate"]
assert page.has_content?('Upload training data')
attach_file('file', "./data/hamster_carcinogenicity.csv")
click_on "Create model"
assert first("h2").has_content? 'hamster_carcinogenicity'
time = 0
while first(".model_status").has_no_content?("Completed") and time < 120 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"
#assert page.has_content? "false"
#assert page.has_content? "0.294"
#click_on "Details"
#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
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
# wait until validation is completed
# check results (links, reports, results)
puts @browser.url
end
def test_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
end
#@browser.close
end
=end
end
=begin
def login(browser, user, password)
browser.goto File.join(CONFIG[:services]["opentox-toxcreate"], "login")
browser.text_field(:id, "username").set(user)
browser.text_field(:id, "password").set(password)
browser.button(:value, "Login").click
end
=end
|