Commit f4603c148b68cfea737442a2721f411ba4f94e03
1 parent
acebb3ea
Exists in
master
and in
1 other branch
Adding explanation for missing response time in votes, updating test_api
Showing
2 changed files
with
37 additions
and
1 deletions
Show diff stats
db/migrate/20100517153944_add_missing_response_time_exp_to_votes.rb
0 → 100644
| ... | ... | @@ -0,0 +1,22 @@ |
| 1 | +class AddMissingResponseTimeExpToVotes < ActiveRecord::Migration | |
| 2 | + def self.up | |
| 3 | + add_column :votes, :missing_response_time_exp, :string, :default => "" | |
| 4 | + add_column :skips, :missing_response_time_exp, :string, :default => "" | |
| 5 | + | |
| 6 | + recording_client_time_start_date = Vote.find(:all, :conditions => 'time_viewed IS NOT NULL', :order => 'created_at', :limit => 1).first.created_at | |
| 7 | + Vote.find_each do |v| | |
| 8 | + if v.created_at <= recording_client_time_start_date && v.time_viewed.nil? | |
| 9 | + v.missing_response_time_exp = "missing" | |
| 10 | + v.save! | |
| 11 | + elsif v.time_viewed.nil? | |
| 12 | + v.missing_response_time_exp = "invalid" | |
| 13 | + v.save! | |
| 14 | + end | |
| 15 | + end | |
| 16 | + end | |
| 17 | + | |
| 18 | + def self.down | |
| 19 | + remove_column :votes, :missing_response_time_exp | |
| 20 | + remove_column :skips, :missing_response_time_exp | |
| 21 | + end | |
| 22 | +end | ... | ... |
lib/tasks/test_api.rake
| ... | ... | @@ -218,6 +218,7 @@ namespace :test_api do |
| 218 | 218 | error_msg = "" |
| 219 | 219 | |
| 220 | 220 | bad_choices = [] |
| 221 | + bad_votes = [] | |
| 221 | 222 | questions.each do |question| |
| 222 | 223 | |
| 223 | 224 | total_wins =0 |
| ... | ... | @@ -386,6 +387,12 @@ namespace :test_api do |
| 386 | 387 | error_msg += "Error! There are #{votes_without_appearances} votes without associated appearance objects." |
| 387 | 388 | end |
| 388 | 389 | |
| 390 | + skips_without_appearances= Skip.count(:conditions => {:appearance_id => nil}) | |
| 391 | + if (skips_without_appearances > 0) | |
| 392 | + error_msg += "Error! There are #{skips_without_appearances} skips without associated appearance objects." | |
| 393 | + end | |
| 394 | + | |
| 395 | + | |
| 389 | 396 | recording_client_time_start_date = Vote.find(:all, :conditions => 'time_viewed IS NOT NULL', :order => 'created_at', :limit => 1).first.created_at |
| 390 | 397 | |
| 391 | 398 | Vote.find_each(:batch_size => 1000, :include => :appearance) do |v| |
| ... | ... | @@ -409,8 +416,10 @@ namespace :test_api do |
| 409 | 416 | error_msg += the_error_msg |
| 410 | 417 | print the_error_msg |
| 411 | 418 | |
| 419 | + bad_votes << v.id | |
| 420 | + | |
| 412 | 421 | elsif v.time_viewed.nil? |
| 413 | - if v.created_at > recording_client_time_start_date | |
| 422 | + if v.created_at > recording_client_time_start_date && v.missing_response_time_exp != 'invalid' | |
| 414 | 423 | the_error_msg = "Error! Vote #{v.id} with Appearance #{v.appearance.id}, does not have a client response, even though it should! Vote creation time: #{v.created_at.to_s}, Appearance creation time: #{v.appearance.created_at.to_s}, Client side response time: #{v.time_viewed}\n" |
| 415 | 424 | error_msg += the_error_msg |
| 416 | 425 | print the_error_msg |
| ... | ... | @@ -454,6 +463,11 @@ namespace :test_api do |
| 454 | 463 | puts "Here's a list of choice ids that you may want to modify: #{bad_choices.uniq.inspect}" |
| 455 | 464 | |
| 456 | 465 | end |
| 466 | + unless bad_votes.blank? | |
| 467 | + | |
| 468 | + puts "Here's a list of vote ids that you may want to modify: #{bad_votes.uniq.inspect}" | |
| 469 | + | |
| 470 | + end | |
| 457 | 471 | print error_msg |
| 458 | 472 | end |
| 459 | 473 | ... | ... |