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