Commit 408763a62696b6a12700ba9829a161ee167efabc
1 parent
d7606f19
Exists in
master
and in
1 other branch
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 | 7 | task :verify_appearance_vote_prompt_ids => :environment do |
| 8 | 8 | puts verify_appearance_vote_prompt_ids().inspect |
| 9 | 9 | end |
| 10 | + | |
| 10 | 11 | def verify_appearance_vote_prompt_ids |
| 11 | 12 | bad_records = Vote.connection.select_all " |
| 12 | 13 | SELECT votes.id |
| ... | ... | @@ -36,9 +37,23 @@ namespace :test_api do |
| 36 | 37 | return error_message.blank? ? [success_message, false] : [error_message, true] |
| 37 | 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 | 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 | 57 | puts verify_choice_appearances_and_votes(choice).inspect |
| 43 | 58 | end |
| 44 | 59 | |
| ... | ... | @@ -462,6 +477,11 @@ namespace :test_api do |
| 462 | 477 | end |
| 463 | 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 | 486 | if cached_score >= 50 |
| 467 | 487 | total_scores_gte_fifty +=1 |
| ... | ... | @@ -642,8 +662,8 @@ namespace :test_api do |
| 642 | 662 | end |
| 643 | 663 | |
| 644 | 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 | 667 | puts answered_appearances_equals_votes_and_skips(question).inspect |
| 648 | 668 | end |
| 649 | 669 | ... | ... |