Commit f4603c148b68cfea737442a2721f411ba4f94e03

Authored by Dhruv Kapadia
1 parent acebb3ea

Adding explanation for missing response time in votes, updating test_api

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  
... ...