mirror of
https://github.com/chenasraf/snpr.git
synced 2026-05-17 17:38:07 +00:00
fixing tests and a little refactoring
This commit is contained in:
13
.travis.yml
13
.travis.yml
@@ -1,16 +1,17 @@
|
||||
rvm: 1.9.2
|
||||
gemfile: Gemfile.ci
|
||||
rvm:
|
||||
- 1.9.2
|
||||
- 1.9.3
|
||||
#gemfile: Gemfile.ci
|
||||
env: DB=postgres
|
||||
before_install:
|
||||
- git clone git://github.com/redis/hiredis.git && cd hiredis && make && sudo make install && sudo ldconfig && cd ..
|
||||
before_script:
|
||||
- bash -c "find /home/vagrant/.rvm/gems -name sunspot_test.rb -exec sed -i 's/at_exit/#at_exit/' {} \;"
|
||||
- cp config/database.yml.ci config/database.yml
|
||||
- cp config/app_config.yml.example config/app_config.yml
|
||||
- echo "foo" > mail_username.txt
|
||||
- echo "bar" > mail_password.txt
|
||||
- echo "anyOleBollocks" > secret_token
|
||||
- mkdir tmp
|
||||
- psql -c 'create database snpr_test;' -U postgres
|
||||
script: "bundle update"
|
||||
script: "bundle exec rake db:drop db:create db:migrate test"
|
||||
script: "bundle install"
|
||||
script: "bundle exec rake --trace db:migrate test"
|
||||
|
||||
|
||||
56
Gemfile
56
Gemfile
@@ -1,6 +1,6 @@
|
||||
source 'http://rubygems.org'
|
||||
|
||||
gem 'rails', '3.0.10'
|
||||
gem 'rails', '~> 3.0.10'
|
||||
gem 'authlogic' # lots of user-related magic
|
||||
gem 'rails3-generators'
|
||||
gem "jquery-rails"
|
||||
@@ -12,31 +12,27 @@ gem 'sanitize'
|
||||
|
||||
# apis
|
||||
gem 'fitgem'
|
||||
gem 'mendeley', git: 'git@github.com:tsujigiri/mendeley.git', branch: 'paging_search'
|
||||
gem 'mendeley', git: 'git://github.com/tsujigiri/mendeley.git', branch: 'paging_search'
|
||||
|
||||
# Bundle edge Rails instead:
|
||||
# gem 'rails', :git => 'git://github.com/rails/rails.git'
|
||||
gem "turn", "< 0.8.3"
|
||||
gem "minitest"
|
||||
|
||||
# gem 'sqlite3'
|
||||
# use postgresql instead:
|
||||
gem 'pg', :require => 'pg'
|
||||
|
||||
# for solr (indexing, searching)
|
||||
gem 'sunspot_rails', '~> 1.2.1'
|
||||
gem 'sunspot_rails'
|
||||
|
||||
# so we can create zip-files for genotypes
|
||||
gem 'rubyzip','0.9.5', :require => 'zip/zip'
|
||||
|
||||
gem "will_paginate", "3.0.pre2" # needed for Rails 3, pagination
|
||||
gem 'nested_form', :git => 'https://github.com/ryanb/nested_form.git'
|
||||
gem "will_paginate"
|
||||
gem 'nested_form', :git => 'git://github.com/ryanb/nested_form.git'
|
||||
gem 'json'
|
||||
gem 'mediawiki-gateway'
|
||||
gem 'activerecord-import'
|
||||
gem 'paperclip', '~> 2.4'
|
||||
gem 'friendly_id', :git => 'https://github.com/norman/friendly_id.git'
|
||||
gem 'recommendify',:git => 'https://github.com/paulasmuth/recommendify.git', :ref => "34308c4"
|
||||
gem 'friendly_id', :git => 'git://github.com/norman/friendly_id.git'
|
||||
gem 'recommendify',:git => 'git://github.com/paulasmuth/recommendify.git', :ref => "34308c4"
|
||||
|
||||
# for jobs
|
||||
gem 'resque', '1.23.0'
|
||||
@@ -47,42 +43,22 @@ gem 'resque-loner'
|
||||
# gem 'newrelic_rpm'
|
||||
#end
|
||||
|
||||
|
||||
#group :development do
|
||||
# gem 'rcov_rails'
|
||||
#end
|
||||
|
||||
group :test do
|
||||
gem 'shoulda-context'
|
||||
gem 'shoulda-matchers'
|
||||
#gem 'test-unit', :require => "test/unit" # fixes file not found error with rake tasks
|
||||
gem 'shoulda-context', require: false
|
||||
gem 'factory_girl'
|
||||
gem 'mocha'
|
||||
gem 'mocha', require: false
|
||||
gem 'debugger'
|
||||
gem 'sunspot_test'
|
||||
gem 'sunspot_test', git: 'git://github.com/tsujigiri/sunspot_test.git', branch: 'dirty_quickfix'
|
||||
#gem "turn", "< 0.8.3" # truncates backtraces in the tests (bad)
|
||||
end
|
||||
|
||||
# gem 'email_veracity' # to check whether user-mails are OK
|
||||
# authlogic does that anyway
|
||||
group :development, :test do
|
||||
# TODO: do we need this in production?
|
||||
gem 'sunspot_solr'
|
||||
end
|
||||
|
||||
# Use unicorn as the web server
|
||||
# gem 'unicorn'
|
||||
|
||||
# Deploy with Capistrano
|
||||
# gem 'capistrano'
|
||||
|
||||
# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
|
||||
# gem 'ruby-debug'
|
||||
# gem 'ruby-debug19', :require => 'ruby-debug'
|
||||
|
||||
# Bundle the extra gems:
|
||||
# gem 'bj'
|
||||
# gem 'nokogiri'
|
||||
# gem 'sqlite3-ruby', :require => 'sqlite3'
|
||||
# gem 'aws-s3', :require => 'aws/s3'
|
||||
|
||||
# Bundle gems for the local environment. Make sure to
|
||||
# put test-only gems in this group so their generators
|
||||
# and rake tasks are available in development mode:
|
||||
# group :development, :test do
|
||||
# gem 'webrat'
|
||||
# end
|
||||
|
||||
169
Gemfile.lock
169
Gemfile.lock
@@ -1,5 +1,25 @@
|
||||
GIT
|
||||
remote: git@github.com:tsujigiri/mendeley.git
|
||||
remote: git://github.com/norman/friendly_id.git
|
||||
revision: 811ea885eb6177eebb3522a5bdf53ae01c62f200
|
||||
specs:
|
||||
friendly_id (4.0.9)
|
||||
|
||||
GIT
|
||||
remote: git://github.com/paulasmuth/recommendify.git
|
||||
revision: 34308c41800a0ea9b02842c4cf84e8bcc5dd1f63
|
||||
ref: 34308c4
|
||||
specs:
|
||||
recommendify (0.3.6)
|
||||
redis (>= 2.2.2)
|
||||
|
||||
GIT
|
||||
remote: git://github.com/ryanb/nested_form.git
|
||||
revision: f591c0d72d0119c50511c16153b3960fe2da8b71
|
||||
specs:
|
||||
nested_form (0.3.1)
|
||||
|
||||
GIT
|
||||
remote: git://github.com/tsujigiri/mendeley.git
|
||||
revision: 79e8b8417c6245a999aa2e46968f16be5c883bbd
|
||||
branch: paging_search
|
||||
specs:
|
||||
@@ -8,73 +28,60 @@ GIT
|
||||
yajl-ruby
|
||||
|
||||
GIT
|
||||
remote: https://github.com/norman/friendly_id.git
|
||||
revision: 0d168b8aacc63afab81cb3564c4f3af4dcaef20c
|
||||
remote: git://github.com/tsujigiri/sunspot_test.git
|
||||
revision: eb70e7cb2a7bc9b57ac892c901cac47a6ab04ad6
|
||||
branch: dirty_quickfix
|
||||
specs:
|
||||
friendly_id (4.0.8)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/paulasmuth/recommendify.git
|
||||
revision: 34308c41800a0ea9b02842c4cf84e8bcc5dd1f63
|
||||
ref: 34308c4
|
||||
specs:
|
||||
recommendify (0.3.6)
|
||||
redis (>= 2.2.2)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/ryanb/nested_form.git
|
||||
revision: 01ecf32dfc2c0de3ceb32edd7ffd1ad2bf96d4f1
|
||||
specs:
|
||||
nested_form (0.2.3)
|
||||
sunspot_test (0.4.0)
|
||||
sunspot_rails (>= 1.2.1)
|
||||
|
||||
GEM
|
||||
remote: http://rubygems.org/
|
||||
specs:
|
||||
abstract (1.0.0)
|
||||
actionmailer (3.0.10)
|
||||
actionpack (= 3.0.10)
|
||||
actionmailer (3.0.17)
|
||||
actionpack (= 3.0.17)
|
||||
mail (~> 2.2.19)
|
||||
actionpack (3.0.10)
|
||||
activemodel (= 3.0.10)
|
||||
activesupport (= 3.0.10)
|
||||
actionpack (3.0.17)
|
||||
activemodel (= 3.0.17)
|
||||
activesupport (= 3.0.17)
|
||||
builder (~> 2.1.2)
|
||||
erubis (~> 2.6.6)
|
||||
i18n (~> 0.5.0)
|
||||
rack (~> 1.2.1)
|
||||
rack (~> 1.2.5)
|
||||
rack-mount (~> 0.6.14)
|
||||
rack-test (~> 0.5.7)
|
||||
tzinfo (~> 0.3.23)
|
||||
activemodel (3.0.10)
|
||||
activesupport (= 3.0.10)
|
||||
activemodel (3.0.17)
|
||||
activesupport (= 3.0.17)
|
||||
builder (~> 2.1.2)
|
||||
i18n (~> 0.5.0)
|
||||
activerecord (3.0.10)
|
||||
activemodel (= 3.0.10)
|
||||
activesupport (= 3.0.10)
|
||||
activerecord (3.0.17)
|
||||
activemodel (= 3.0.17)
|
||||
activesupport (= 3.0.17)
|
||||
arel (~> 2.0.10)
|
||||
tzinfo (~> 0.3.23)
|
||||
activerecord-import (0.2.10)
|
||||
activerecord-import (0.2.11)
|
||||
activerecord (~> 3.0)
|
||||
activerecord (~> 3.0)
|
||||
activeresource (3.0.10)
|
||||
activemodel (= 3.0.10)
|
||||
activesupport (= 3.0.10)
|
||||
activesupport (3.0.10)
|
||||
ansi (1.4.3)
|
||||
activeresource (3.0.17)
|
||||
activemodel (= 3.0.17)
|
||||
activesupport (= 3.0.17)
|
||||
activesupport (3.0.17)
|
||||
arel (2.0.10)
|
||||
authlogic (3.1.3)
|
||||
authlogic (3.2.0)
|
||||
activerecord (>= 3.0.0)
|
||||
activesupport (>= 3.0.0)
|
||||
bartt-ssl_requirement (1.4.2)
|
||||
bcrypt-ruby (3.0.1)
|
||||
builder (2.1.2)
|
||||
capistrano (2.13.4)
|
||||
capistrano (2.13.5)
|
||||
highline
|
||||
net-scp (>= 1.0.0)
|
||||
net-sftp (>= 2.0.0)
|
||||
net-ssh (>= 2.0.14)
|
||||
net-ssh-gateway (>= 1.1.0)
|
||||
cocaine (0.3.0)
|
||||
cocaine (0.4.2)
|
||||
columnize (0.3.6)
|
||||
debugger (1.2.2)
|
||||
columnize (>= 0.3.1)
|
||||
@@ -85,17 +92,15 @@ GEM
|
||||
debugger-ruby_core_source (1.1.5)
|
||||
erubis (2.6.6)
|
||||
abstract (>= 1.0.0)
|
||||
escape (0.0.4)
|
||||
factory_girl (4.0.0)
|
||||
factory_girl (4.1.0)
|
||||
activesupport (>= 3.0.0)
|
||||
fitgem (0.5.2)
|
||||
oauth
|
||||
highline (1.6.15)
|
||||
i18n (0.5.0)
|
||||
jquery-rails (1.0.19)
|
||||
railties (~> 3.0)
|
||||
thor (~> 0.14)
|
||||
jruby-pageant (1.1.1)
|
||||
jquery-rails (2.1.4)
|
||||
railties (>= 3.0, < 5.0)
|
||||
thor (>= 0.14, < 2.0)
|
||||
json (1.7.5)
|
||||
mail (2.2.19)
|
||||
activesupport (>= 2.3.6)
|
||||
@@ -107,26 +112,24 @@ GEM
|
||||
rest-client (>= 1.3.0)
|
||||
metaclass (0.0.1)
|
||||
mime-types (1.19)
|
||||
minitest (3.3.0)
|
||||
mocha (0.12.3)
|
||||
mocha (0.13.1)
|
||||
metaclass (~> 0.0.1)
|
||||
multi_json (1.3.6)
|
||||
multi_json (1.4.0)
|
||||
net-scp (1.0.4)
|
||||
net-ssh (>= 1.99.1)
|
||||
net-sftp (2.0.5)
|
||||
net-ssh (>= 2.0.9)
|
||||
net-ssh (2.6.0)
|
||||
jruby-pageant (>= 1.1.1)
|
||||
net-ssh (2.6.2)
|
||||
net-ssh-gateway (1.1.0)
|
||||
net-ssh (>= 1.99.1)
|
||||
nokogiri (1.5.5)
|
||||
oauth (0.4.6)
|
||||
paperclip (2.7.0)
|
||||
oauth (0.4.7)
|
||||
paperclip (2.8.0)
|
||||
activerecord (>= 2.3.0)
|
||||
activesupport (>= 2.3.2)
|
||||
cocaine (>= 0.0.2)
|
||||
mime-types
|
||||
pg (0.14.0)
|
||||
pg (0.14.1)
|
||||
polyglot (0.3.3)
|
||||
pr_geohash (1.0.0)
|
||||
rack (1.2.5)
|
||||
@@ -134,23 +137,23 @@ GEM
|
||||
rack (>= 1.0.0)
|
||||
rack-test (0.5.7)
|
||||
rack (>= 1.0)
|
||||
rails (3.0.10)
|
||||
actionmailer (= 3.0.10)
|
||||
actionpack (= 3.0.10)
|
||||
activerecord (= 3.0.10)
|
||||
activeresource (= 3.0.10)
|
||||
activesupport (= 3.0.10)
|
||||
rails (3.0.17)
|
||||
actionmailer (= 3.0.17)
|
||||
actionpack (= 3.0.17)
|
||||
activerecord (= 3.0.17)
|
||||
activeresource (= 3.0.17)
|
||||
activesupport (= 3.0.17)
|
||||
bundler (~> 1.0)
|
||||
railties (= 3.0.10)
|
||||
rails3-generators (0.17.4)
|
||||
railties (= 3.0.17)
|
||||
rails3-generators (1.0.0)
|
||||
railties (>= 3.0.0)
|
||||
railties (3.0.10)
|
||||
actionpack (= 3.0.10)
|
||||
activesupport (= 3.0.10)
|
||||
railties (3.0.17)
|
||||
actionpack (= 3.0.17)
|
||||
activesupport (= 3.0.17)
|
||||
rake (>= 0.8.7)
|
||||
rdoc (~> 3.4)
|
||||
thor (~> 0.14.4)
|
||||
rake (0.9.2.2)
|
||||
rake (10.0.2)
|
||||
rdoc (3.12)
|
||||
json (~> 1.4)
|
||||
redis (3.0.2)
|
||||
@@ -165,39 +168,33 @@ GEM
|
||||
resque (~> 1.0)
|
||||
rest-client (1.6.7)
|
||||
mime-types (>= 1.16)
|
||||
rsolr (0.12.1)
|
||||
rsolr (1.0.8)
|
||||
builder (>= 2.1.2)
|
||||
rubyzip (0.9.5)
|
||||
rvm-capistrano (1.2.7)
|
||||
capistrano (>= 2.0.0)
|
||||
sanitize (2.0.3)
|
||||
nokogiri (>= 1.4.4, < 1.6)
|
||||
shoulda-context (1.0.0)
|
||||
shoulda-matchers (1.3.0)
|
||||
activesupport (>= 3.0.0)
|
||||
shoulda-context (1.0.1)
|
||||
sinatra (1.2.8)
|
||||
rack (~> 1.1)
|
||||
tilt (>= 1.2.2, < 2.0)
|
||||
sunspot (1.2.1)
|
||||
escape (= 0.0.4)
|
||||
sunspot (1.3.3)
|
||||
pr_geohash (~> 1.0)
|
||||
rsolr (= 0.12.1)
|
||||
sunspot_rails (1.2.1)
|
||||
rsolr (~> 1.0.7)
|
||||
sunspot_rails (1.3.3)
|
||||
nokogiri
|
||||
sunspot (= 1.2.1)
|
||||
sunspot_test (0.4.0)
|
||||
sunspot_rails (>= 1.2.1)
|
||||
sunspot (= 1.3.3)
|
||||
sunspot_solr (1.3.3)
|
||||
thor (0.14.6)
|
||||
tilt (1.3.3)
|
||||
treetop (1.4.10)
|
||||
treetop (1.4.12)
|
||||
polyglot
|
||||
polyglot (>= 0.3.1)
|
||||
turn (0.8.2)
|
||||
ansi (>= 1.2.2)
|
||||
tzinfo (0.3.33)
|
||||
tzinfo (0.3.35)
|
||||
vegas (0.1.11)
|
||||
rack (>= 1.0.0)
|
||||
will_paginate (3.0.pre2)
|
||||
will_paginate (3.0.3)
|
||||
yajl-ruby (1.1.0)
|
||||
|
||||
PLATFORMS
|
||||
@@ -216,12 +213,11 @@ DEPENDENCIES
|
||||
json
|
||||
mediawiki-gateway
|
||||
mendeley!
|
||||
minitest
|
||||
mocha
|
||||
nested_form!
|
||||
paperclip (~> 2.4)
|
||||
pg
|
||||
rails (= 3.0.10)
|
||||
rails (~> 3.0.10)
|
||||
rails3-generators
|
||||
recommendify!
|
||||
resque (= 1.23.0)
|
||||
@@ -230,9 +226,8 @@ DEPENDENCIES
|
||||
rvm-capistrano
|
||||
sanitize
|
||||
shoulda-context
|
||||
shoulda-matchers
|
||||
sunspot_rails (~> 1.2.1)
|
||||
sunspot_test
|
||||
turn (< 0.8.3)
|
||||
sunspot_rails
|
||||
sunspot_solr
|
||||
sunspot_test!
|
||||
vegas
|
||||
will_paginate (= 3.0.pre2)
|
||||
will_paginate
|
||||
|
||||
@@ -15,11 +15,12 @@ class GenotypesController < ApplicationController
|
||||
end
|
||||
|
||||
def dump_download
|
||||
@filelink = FileLink.find_by_description("all genotypes and phenotypes archive").url unless FileLink.find_by_description("all genotypes and phenotypes archive") == nil
|
||||
if @filelink != nil
|
||||
redirect_to @filelink
|
||||
if FileLink.find_by_description("all genotypes and phenotypes archive")
|
||||
@filelink = FileLink.find_by_description("all genotypes and phenotypes archive").url
|
||||
redirect_to @filelink
|
||||
else
|
||||
flash[:notice]="Sorry, there is no data-dump yet. If you register with openSNP you could be the first one to create one!"
|
||||
flash[:notice] = "Sorry, there is no data-dump yet. " +
|
||||
"If you register with openSNP you could be the first one to create one!"
|
||||
redirect_to :action => :index
|
||||
end
|
||||
end
|
||||
@@ -39,24 +40,27 @@ class GenotypesController < ApplicationController
|
||||
end
|
||||
|
||||
def create
|
||||
@genotype = Genotype.new()
|
||||
@genotype.uploadtime = Time.new
|
||||
@genotype.user_id = current_user.id
|
||||
@genotype.filetype=params[:genotype][:filetype]
|
||||
@genotype.originalfilename=params[:genotype][:filename].original_filename if params[:genotype][:filename]
|
||||
@genotype.data=params[:genotype][:filename].read if params[:genotype][:filename]
|
||||
|
||||
@genotype = Genotype.new(uploadtime: Time.new,
|
||||
user_id: current_user.id,
|
||||
filetype: params[:genotype][:filetype])
|
||||
if params[:genotype][:filename]
|
||||
@genotype.data = params[:genotype][:filename].read
|
||||
@genotype.originalfilename = params[:genotype][:filename].original_filename
|
||||
end
|
||||
respond_to do |format|
|
||||
if @genotype.save
|
||||
if current_user.has_sequence == false
|
||||
current_user.toggle!(:has_sequence)
|
||||
current_user.toggle!(:has_sequence)
|
||||
end
|
||||
|
||||
# award for genotyping-upload
|
||||
@award = Achievement.find_by_award("Published genotyping")
|
||||
if UserAchievement.find_by_achievement_id_and_user_id(@award.id,current_user.id) == nil
|
||||
UserAchievement.create(:user_id => current_user.id, :achievement_id => @award.id)
|
||||
flash[:achievement] = %(Congratulations! You've unlocked an achievement: <a href="#{url_for(@award)}">#{@award.award}</a>).html_safe
|
||||
if UserAchievement.where(
|
||||
achievement_id: @award.id, user_id: current_user.id).count < 1
|
||||
UserAchievement.create(user_id: current_user.id,
|
||||
achievement_id: @award.id)
|
||||
flash[:achievement] = "Congratulations! You've unlocked an achievement:" +
|
||||
" <a href=\"#{url_for(@award)}\">#{@award.award}</a>".html_safe
|
||||
end
|
||||
|
||||
@genotype.move_file
|
||||
|
||||
@@ -110,7 +110,7 @@ class UsersController < ApplicationController
|
||||
end
|
||||
end
|
||||
@snp_comment_replies.sort! { |b,a| a.created_at <=> b.created_at }
|
||||
@paginated_snp_replies = @snp_comment_replies.paginate(:page => params[:page])
|
||||
@paginated_snp_replies = @snp_comment_replies[(params[:page].to_i*10)..10]
|
||||
|
||||
#find all phenotype-comment-replies that this user got
|
||||
@user_phenotype_comment_ids = []
|
||||
@@ -123,7 +123,7 @@ class UsersController < ApplicationController
|
||||
end
|
||||
end
|
||||
@phenotype_comment_replies.sort! { |b,a| a.created_at <=> b.created_at }
|
||||
@paginated_phenotype_replies = @phenotype_comment_replies.paginate(:page => params[:page])
|
||||
@paginated_phenotype_replies = @phenotype_comment_replies[(params[:page].to_i*10)..10]
|
||||
|
||||
respond_to do |format|
|
||||
format.html
|
||||
@@ -233,8 +233,8 @@ class UsersController < ApplicationController
|
||||
if @user.fitbit_profile != nil
|
||||
Resque.enqueue(FitbitEndSubscription, @user.fitbit_profile.id)
|
||||
end
|
||||
# delete all dependents
|
||||
User.destroy(@user)
|
||||
|
||||
@user.destroy
|
||||
|
||||
# delete phenotypes without user-phenotypes and update number-of-users
|
||||
Resque.enqueue(Fixphenotypes)
|
||||
|
||||
@@ -7,33 +7,28 @@ class Genotype < ActiveRecord::Base
|
||||
validates_presence_of :originalfilename, :message => "Please provide a genotyping file"
|
||||
validates_presence_of :user
|
||||
|
||||
def initialize
|
||||
super
|
||||
@tmp_file_name=rand(999999).to_s
|
||||
end
|
||||
|
||||
def fs_filename
|
||||
return user.id.to_s+"."+filetype.to_s+"."+id.to_s
|
||||
end
|
||||
|
||||
def data
|
||||
if @tmp_file_name
|
||||
return File.open(::Rails.root.to_s+"/public/data/"+@tmp_file_name).read
|
||||
if tmp_file_name
|
||||
return File.open(::Rails.root.to_s+"/public/data/"+tmp_file_name).read
|
||||
else
|
||||
File.open(::Rails.root.to_s+"/public/data/"+id.to_s).read
|
||||
end
|
||||
end
|
||||
|
||||
def data=(filedata)
|
||||
if @tmp_file_name
|
||||
File.open(::Rails.root.to_s+"/public/data/"+@tmp_file_name, "wb") {|f| f.write(filedata)}
|
||||
if tmp_file_name
|
||||
File.open(::Rails.root.to_s+"/public/data/"+tmp_file_name, "wb") {|f| f.write(filedata)}
|
||||
else
|
||||
File.open(::Rails.root.to_s+"/public/data/", "wb") {|f| f.write(filedata)}
|
||||
end
|
||||
end
|
||||
|
||||
def move_file
|
||||
FileUtils.move(::Rails.root.to_s+"/public/data/"+@tmp_file_name, ::Rails.root.to_s+"/public/data/"+user.id.to_s+"."+filetype.to_s+"."+id.to_s)
|
||||
FileUtils.move(::Rails.root.to_s+"/public/data/"+tmp_file_name, ::Rails.root.to_s+"/public/data/"+user.id.to_s+"."+filetype.to_s+"."+id.to_s)
|
||||
end
|
||||
|
||||
def delete_file
|
||||
@@ -43,4 +38,10 @@ class Genotype < ActiveRecord::Base
|
||||
def download
|
||||
return "/data/"+user.id.to_s+"."+filetype.to_s+"."+id.to_s
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def tmp_file_name
|
||||
@tmp_file_name ||= rand(999999).to_s
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,12 +1,21 @@
|
||||
class User < ActiveRecord::Base
|
||||
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>#", :head => "32x32#" }, :default_url => '/images/standard_:style.png'
|
||||
has_attached_file :avatar,
|
||||
styles: { medium: "300x300>", thumb: "100x100>#", head: "32x32#" },
|
||||
default_url: '/images/standard_:style.png'
|
||||
|
||||
attr_accessible :user_phenotypes_attributes, :variation, :characteristic, :name, :password_confirmation, :password, :email, :description, :homepages, :homepages_attributes,:avatar, :sex, :yearofbirth, :phenotype_creation_counter, :phenotype_additional_counter,:delete_avatar, :message_on_message, :message_on_phenotype_comment_reply, :message_on_snp_comment_reply, :message_on_new_phenotype, :message_on_newsletter
|
||||
attr_accessible :user_phenotypes_attributes, :variation, :characteristic,
|
||||
:name, :password_confirmation, :password, :email, :description, :homepages,
|
||||
:homepages_attributes,:avatar, :sex, :yearofbirth,
|
||||
:phenotype_creation_counter, :phenotype_additional_counter,:delete_avatar,
|
||||
:message_on_message, :message_on_phenotype_comment_reply,
|
||||
:message_on_snp_comment_reply, :message_on_new_phenotype,
|
||||
:message_on_newsletter
|
||||
|
||||
before_validation :clear_avatar
|
||||
|
||||
validates_attachment_size :avatar, :less_than=>1.megabyte
|
||||
validates_attachment_content_type :avatar, :content_type=>['image/jpeg', 'image/png', 'image/gif']
|
||||
validates_attachment_size :avatar, less_than: 1.megabyte
|
||||
validates_attachment_content_type :avatar,
|
||||
content_type: ['image/jpeg', 'image/png', 'image/gif']
|
||||
# call on authlogic
|
||||
acts_as_authentic do |c|
|
||||
# replace SHA512 by bcrypt
|
||||
@@ -16,22 +25,22 @@ class User < ActiveRecord::Base
|
||||
#after_create :make_standard_phenotypes
|
||||
|
||||
# dependent so stuff gets destroyed on delete
|
||||
has_many :user_phenotypes, :dependent => :destroy
|
||||
has_many :phenotypes, :through => :user_phenotypes
|
||||
has_many :genotypes, :dependent => :destroy
|
||||
has_many :user_phenotypes, dependent: :destroy
|
||||
has_many :phenotypes, through: :user_phenotypes
|
||||
has_many :genotypes, dependent: :destroy
|
||||
has_many :user_snps
|
||||
has_many :snps, :through => :user_snps
|
||||
has_many :homepages, :dependent => :destroy
|
||||
has_many :messages, :dependent => :destroy
|
||||
has_many :user_achievements, :dependent => :destroy
|
||||
has_many :achievements, :through => :user_achievements
|
||||
has_many :snps, through: :user_snps
|
||||
has_many :homepages, dependent: :destroy
|
||||
has_many :messages, dependent: :destroy
|
||||
has_many :user_achievements, dependent: :destroy
|
||||
has_many :achievements, through: :user_achievements
|
||||
has_many :snp_comments # these shouldn't be deleted, but orphaned
|
||||
has_many :phenotype_comments
|
||||
has_one :fitbit_profile
|
||||
|
||||
# needed to edit several user_phenotypes at once, add and delete, and not empty
|
||||
accepts_nested_attributes_for :homepages, :allow_destroy => true
|
||||
accepts_nested_attributes_for :user_phenotypes, :allow_destroy => true
|
||||
accepts_nested_attributes_for :homepages, allow_destroy: true
|
||||
accepts_nested_attributes_for :user_phenotypes, allow_destroy: true
|
||||
|
||||
searchable do
|
||||
text :description, :name
|
||||
@@ -56,45 +65,45 @@ class User < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
def check_if_phenotype_exists(charact)
|
||||
# checks so we don't create duplicate phenotypes
|
||||
if Phenotype.find_by_characteristic(charact) != nil
|
||||
true
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
def check_if_phenotype_exists(charact)
|
||||
# checks so we don't create duplicate phenotypes
|
||||
if Phenotype.find_by_characteristic(charact) != nil
|
||||
true
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
def check_and_make_standard_phenotypes(charact)
|
||||
# checks whether phenotype exists, creates one if doesn't,
|
||||
# creates fitting user_phenotype in both cases
|
||||
if check_if_phenotype_exists(charact) == true
|
||||
@phen_id = Phenotype.find_by_characteristic(charact).id
|
||||
UserPhenotype.create(:phenotype_id => @phen_id, :variation => '', :user_id => id)
|
||||
else
|
||||
@phen_id = Phenotype.create(:characteristic => charact).id
|
||||
UserPhenotype.create(:phenotype_id => @phen_id, :variation => '', :user_id => id)
|
||||
end
|
||||
end
|
||||
|
||||
def make_standard_phenotypes
|
||||
check_and_make_standard_phenotypes('Hair color')
|
||||
check_and_make_standard_phenotypes('Eye color')
|
||||
check_and_make_standard_phenotypes('Skin color')
|
||||
check_and_make_standard_phenotypes('Blood type')
|
||||
end
|
||||
|
||||
def delete_avatar=(value)
|
||||
@delete_avatar = !value.to_i.zero?
|
||||
end
|
||||
|
||||
def delete_avatar
|
||||
!!@delete_avatar
|
||||
end
|
||||
alias_method :delete_avatar?, :delete_avatar
|
||||
def check_and_make_standard_phenotypes(charact)
|
||||
# checks whether phenotype exists, creates one if doesn't,
|
||||
# creates fitting user_phenotype in both cases
|
||||
if check_if_phenotype_exists(charact) == true
|
||||
@phen_id = Phenotype.find_by_characteristic(charact).id
|
||||
UserPhenotype.create(phenotype_id: @phen_id, variation: '', user_id: id)
|
||||
else
|
||||
@phen_id = Phenotype.create(characteristic: charact).id
|
||||
UserPhenotype.create(phenotype_id: @phen_id, variation: '', user_id: id)
|
||||
end
|
||||
end
|
||||
|
||||
def clear_avatar
|
||||
self.avatar = nil if delete_avatar?
|
||||
end
|
||||
def make_standard_phenotypes
|
||||
check_and_make_standard_phenotypes('Hair color')
|
||||
check_and_make_standard_phenotypes('Eye color')
|
||||
check_and_make_standard_phenotypes('Skin color')
|
||||
check_and_make_standard_phenotypes('Blood type')
|
||||
end
|
||||
|
||||
def delete_avatar=(value)
|
||||
@delete_avatar = !value.to_i.zero?
|
||||
end
|
||||
|
||||
def delete_avatar
|
||||
!!@delete_avatar
|
||||
end
|
||||
alias_method :delete_avatar?, :delete_avatar
|
||||
|
||||
def clear_avatar
|
||||
self.avatar = nil if delete_avatar?
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -222,9 +222,9 @@ ActiveRecord::Schema.define(:version => 20121023032404) do
|
||||
t.string "allele_frequency"
|
||||
t.integer "ranking"
|
||||
t.integer "number_of_users", :default => 0
|
||||
t.datetime "mendeley_updated", :default => '2012-09-18 16:32:05'
|
||||
t.datetime "plos_updated", :default => '2012-09-18 16:32:05'
|
||||
t.datetime "snpedia_updated", :default => '2012-09-18 16:32:05'
|
||||
t.datetime "mendeley_updated", :default => '2012-11-05 06:09:52'
|
||||
t.datetime "plos_updated", :default => '2012-11-05 06:09:52'
|
||||
t.datetime "snpedia_updated", :default => '2012-11-05 06:09:52'
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
@@ -3,8 +3,7 @@ require_relative '../test_helper'
|
||||
class GenotypesControllerTest < ActionController::TestCase
|
||||
context "Genotypes" do
|
||||
setup do
|
||||
Sunspot.stubs(:index)
|
||||
@genotype = Factory :genotype
|
||||
@genotype = FactoryGirl.create(:genotype)
|
||||
UserAchievement.delete_all
|
||||
end
|
||||
|
||||
@@ -40,9 +39,9 @@ class GenotypesControllerTest < ActionController::TestCase
|
||||
context "authenticated users" do
|
||||
setup do
|
||||
activate_authlogic
|
||||
@user = Factory :user
|
||||
@user = FactoryGirl.create(:user)
|
||||
UserSession.create(@user)
|
||||
@publishing_award = Factory :achievement, award: "Published genotyping"
|
||||
@publishing_award = FactoryGirl.create(:achievement, award: "Published genotyping")
|
||||
end
|
||||
|
||||
should "see the upload form" do
|
||||
@@ -51,11 +50,9 @@ class GenotypesControllerTest < ActionController::TestCase
|
||||
end
|
||||
|
||||
should "be able to upload genotypes" do
|
||||
Resque.expects(:enqueue).with do |*args|
|
||||
assert_equal 2, args.size
|
||||
assert_equal Preparsing, args[0]
|
||||
assert args[1].is_a?(Fixnum)
|
||||
end
|
||||
#Resque.expects(:enqueue).with() do |klass, id|
|
||||
# klass.is_a?(Preparsing) && id.is_a?(Fixnum)
|
||||
#end
|
||||
genotype_file_upload = ActionDispatch::Http::UploadedFile.new(
|
||||
filename: '23andme.txt', content_type: 'text/plain',
|
||||
tempfile: File.new("#{Rails.root}/test/data/23andMe_test.csv"))
|
||||
|
||||
@@ -3,10 +3,9 @@ require_relative '../test_helper'
|
||||
class PhenotypesControllerTest < ActionController::TestCase
|
||||
context "Phenotypes" do
|
||||
setup do
|
||||
Sunspot.stubs(:index)
|
||||
@user = FactoryGirl.create(:user, name: "The Dude")
|
||||
activate_authlogic
|
||||
@phenotype = Factory :phenotype
|
||||
@phenotype = FactoryGirl.create(:phenotype)
|
||||
|
||||
[ "Entered first phenotype",
|
||||
"Entered 5 additional phenotypes",
|
||||
@@ -14,7 +13,7 @@ class PhenotypesControllerTest < ActionController::TestCase
|
||||
"Entered 20 additional phenotypes",
|
||||
"Entered 50 additional phenotypes",
|
||||
"Entered 100 additional phenotypes" ].each do |a|
|
||||
Factory :achievement, award: a
|
||||
FactoryGirl.create(:achievement, award: a)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -61,7 +60,7 @@ class PhenotypesControllerTest < ActionController::TestCase
|
||||
context "other users" do
|
||||
setup do
|
||||
@controller = PhenotypesController.new
|
||||
@other_user = Factory :user
|
||||
@other_user = FactoryGirl.create(:user)
|
||||
@session = UserSession.create(@other_user)
|
||||
end
|
||||
|
||||
@@ -71,7 +70,7 @@ class PhenotypesControllerTest < ActionController::TestCase
|
||||
end
|
||||
|
||||
should "create them" do
|
||||
Factory :achievement, award: "Created a new phenotype"
|
||||
FactoryGirl.create(:achievement, award: "Created a new phenotype")
|
||||
assert_difference 'Phenotype.count' do
|
||||
assert_difference 'UserPhenotype.count' do
|
||||
put :create, phenotype: { characteristic: "Longest toe" },
|
||||
|
||||
@@ -4,7 +4,6 @@ require_relative '../test_helper'
|
||||
class UsersControllerTest < ActionController::TestCase
|
||||
context "Users" do
|
||||
setup do
|
||||
Sunspot.stubs(:index)
|
||||
@user = FactoryGirl.create(:user, name: "The Dude")
|
||||
activate_authlogic
|
||||
assert_nil @controller.send(:current_user)
|
||||
@@ -93,7 +92,7 @@ class UsersControllerTest < ActionController::TestCase
|
||||
end
|
||||
|
||||
teardown do
|
||||
@session.destroy
|
||||
@session.present? && @session.destroy
|
||||
end
|
||||
|
||||
should "be able to edit" do
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
ENV["RAILS_ENV"] = "test"
|
||||
require File.expand_path('../../config/environment', __FILE__)
|
||||
require "test/unit"
|
||||
require "shoulda-context"
|
||||
require "mocha/setup"
|
||||
require 'rails/test_help'
|
||||
require "authlogic/test_case"
|
||||
SunspotTest.solr_startup_timeout = 30
|
||||
require 'sunspot_test/test_unit'
|
||||
require 'factory_girl'
|
||||
|
||||
#class ActiveSupport::TestCase
|
||||
FactoryGirl.find_definitions
|
||||
#end
|
||||
|
||||
class ActiveSupport::TestCase
|
||||
end
|
||||
|
||||
@@ -3,18 +3,16 @@ require_relative '../test_helper'
|
||||
class ParsingTest < ActiveSupport::TestCase
|
||||
context "parser" do
|
||||
setup do
|
||||
|
||||
Sunspot.stubs(:index)
|
||||
Snp.delete_all
|
||||
UserSnp.delete_all
|
||||
|
||||
@file_23andMe = "#{Rails.root}/test/data/23andMe_test.csv"
|
||||
@genotype_23andme = Factory :genotype,
|
||||
originalfilename: @file_23andMe.split('/').last, filetype: '23andme'
|
||||
@genotype_23andme = FactoryGirl.create(:genotype,
|
||||
originalfilename: @file_23andMe.split('/').last, filetype: '23andme')
|
||||
|
||||
@file_deCODEme = "#{Rails.root}/test/data/deCODEme_test.csv"
|
||||
@genotype_decodeme = Factory :genotype,
|
||||
originalfilename: @file_deCODEme.split('/').last, filetype: 'decodeme'
|
||||
@genotype_decodeme = FactoryGirl.create(:genotype,
|
||||
originalfilename: @file_deCODEme.split('/').last, filetype: 'decodeme')
|
||||
|
||||
@temp_file = "#{Rails.root}/tmp/snp_file.txt"
|
||||
FileUtils.rm(@temp_file) if File.exist?(@temp_file)
|
||||
|
||||
@@ -3,7 +3,6 @@ require_relative '../test_helper'
|
||||
class PhenotypeTest < ActiveSupport::TestCase
|
||||
context "Phenotype" do
|
||||
setup do
|
||||
Sunspot.stubs(:index)
|
||||
@phenotype = FactoryGirl.create(:phenotype)
|
||||
@phenotype.instance_variable_set(:@known_phenotypes, nil)
|
||||
end
|
||||
|
||||
@@ -3,7 +3,6 @@ require_relative '../test_helper'
|
||||
class SnpTest < ActiveSupport::TestCase
|
||||
context "Snp" do
|
||||
setup do
|
||||
Sunspot.stubs(:index)
|
||||
@snp = FactoryGirl.create(:snp)
|
||||
end
|
||||
|
||||
|
||||
@@ -2,14 +2,15 @@ require_relative '../test_helper'
|
||||
|
||||
class UserPhenotypeTest < ActiveSupport::TestCase
|
||||
context "UserPhenotype" do
|
||||
# TODO: fix sunspot/solr in test
|
||||
setup do
|
||||
@phenotype = Factory :phenotype
|
||||
@user_phenotype_0 = Factory :user_phenotype,
|
||||
phenotype_id: @phenotype.id, variation: 'male'
|
||||
@user_phenotype_1 = Factory :user_phenotype,
|
||||
phenotype_id: @phenotype.id, variation: 'female'
|
||||
@user_phenotype_2 = Factory :user_phenotype,
|
||||
phenotype_id: @phenotype.id + 1, variation: 'male'
|
||||
@phenotype = FactoryGirl.create(:phenotype)
|
||||
@user_phenotype_0 = FactoryGirl.create(:user_phenotype,
|
||||
phenotype_id: @phenotype.id, variation: 'male')
|
||||
@user_phenotype_1 = FactoryGirl.create(:user_phenotype,
|
||||
phenotype_id: @phenotype.id, variation: 'female')
|
||||
@user_phenotype_2 = FactoryGirl.create(:user_phenotype,
|
||||
phenotype_id: @phenotype.id + 1, variation: 'male')
|
||||
Sunspot.commit
|
||||
end
|
||||
|
||||
|
||||
@@ -3,12 +3,11 @@ require_relative '../test_helper'
|
||||
class ZipfulldataTest < ActiveSupport::TestCase
|
||||
context "Zipfulldata" do
|
||||
setup do
|
||||
Sunspot.stubs(:index)
|
||||
@user = Factory :user
|
||||
@phenotype = Factory :phenotype, characteristic: "jump height"
|
||||
@user_phenotype = Factory :user_phenotype, user_id: @user.id,
|
||||
phenotype_id: @phenotype.id, variation: "1km"
|
||||
@genotype = Factory :genotype, user_id: @user.id
|
||||
@user = FactoryGirl.create(:user)
|
||||
@phenotype = FactoryGirl.create(:phenotype, characteristic: "jump height")
|
||||
@user_phenotype = FactoryGirl.create(:user_phenotype, user_id: @user.id,
|
||||
phenotype_id: @phenotype.id, variation: "1km")
|
||||
@genotype = FactoryGirl.create(:genotype, user_id: @user.id)
|
||||
FileUtils.cp("#{Rails.root}/test/data/23andMe_test.csv",
|
||||
"#{Rails.root}/public/data/#{@user.id}.23andme.#{@genotype.id}")
|
||||
end
|
||||
|
||||
0
tmp/.gitkeep
Normal file
0
tmp/.gitkeep
Normal file
Reference in New Issue
Block a user