Commit 408763a62696b6a12700ba9829a161ee167efabc

Authored by Luke Baker
1 parent d7606f19

add test to verify cached prompt count on choices

also update rake tasks to not use environment variables
Showing 1 changed file with 24 additions and 4 deletions   Show diff stats
lib/tasks/test_api.rake
@@ -7,6 +7,7 @@ namespace :test_api do @@ -7,6 +7,7 @@ namespace :test_api do
7 task :verify_appearance_vote_prompt_ids => :environment do 7 task :verify_appearance_vote_prompt_ids => :environment do
8 puts verify_appearance_vote_prompt_ids().inspect 8 puts verify_appearance_vote_prompt_ids().inspect
9 end 9 end
  10 +
10 def verify_appearance_vote_prompt_ids 11 def verify_appearance_vote_prompt_ids
11 bad_records = Vote.connection.select_all " 12 bad_records = Vote.connection.select_all "
12 SELECT votes.id 13 SELECT votes.id
@@ -36,9 +37,23 @@ namespace :test_api do @@ -36,9 +37,23 @@ namespace :test_api do
36 return error_message.blank? ? [success_message, false] : [error_message, true] 37 return error_message.blank? ? [success_message, false] : [error_message, true]
37 end 38 end
38 39
  40 + desc "Ensure that cached prompt counts are valid for a choice"
  41 + task :verify_cached_prompt_counts, [:choice_id] => :environment do |t, args|
  42 + choice = Choice.find(args[:choice_id])
  43 + puts verify_cached_prompt_counts(choice).inspect
  44 + end
  45 +
  46 + def verify_cached_prompt_counts(choice)
  47 + success_message = "Choice has accurate prompt cache count"
  48 + if choice.prompts_on_the_left.count != choice.prompts_on_the_left_count || choice.prompts_on_the_right.count != choice.prompts_on_the_right_count
  49 + error_message = "Choice #{choice.id} in Question ##{choice.question_id} has inaccurate prompt count cache"
  50 + end
  51 + return error_message.blank? ? [success_message, false] : [error_message, true]
  52 + end
  53 +
39 desc "Ensure that an idea: appearances on left + appearances on right >= (wins + losses + skips)" 54 desc "Ensure that an idea: appearances on left + appearances on right >= (wins + losses + skips)"
40 - task :verify_choice_appearances_and_votes => :environment do  
41 - choice = Choice.find(ENV["choice_id"]) 55 + task :verify_choice_appearances_and_votes, [:choice_id] => :environment do |t, args|
  56 + choice = Choice.find(args[:choice_id])
42 puts verify_choice_appearances_and_votes(choice).inspect 57 puts verify_choice_appearances_and_votes(choice).inspect
43 end 58 end
44 59
@@ -462,6 +477,11 @@ namespace :test_api do @@ -462,6 +477,11 @@ namespace :test_api do
462 end 477 end
463 end 478 end
464 479
  480 + message, error_occurred = verify_cached_prompt_counts(choice)
  481 + if error_occurred
  482 + error_message += message + "\n"
  483 + end
  484 +
465 485
466 if cached_score >= 50 486 if cached_score >= 50
467 total_scores_gte_fifty +=1 487 total_scores_gte_fifty +=1
@@ -642,8 +662,8 @@ namespace :test_api do @@ -642,8 +662,8 @@ namespace :test_api do
642 end 662 end
643 663
644 desc "Ensure that a question has: answered_appearances == votes + skips" 664 desc "Ensure that a question has: answered_appearances == votes + skips"
645 - task :answered_appearances_equals_votes_and_skips => :environment do  
646 - question = Question.find(ENV["question_id"]) 665 + task :answered_appearances_equals_votes_and_skips, [:question_id] => :environment do |t, args|
  666 + question = Question.find(args[:question_id])
647 puts answered_appearances_equals_votes_and_skips(question).inspect 667 puts answered_appearances_equals_votes_and_skips(question).inspect
648 end 668 end
649 669