Commit bacbab7df4150342ef885563fd4c60c174e6c352
1 parent
7c480be5
Exists in
master
and in
1 other branch
add new test for appearances count and votes+skips
Showing
1 changed file
with
25 additions
and
0 deletions
Show diff stats
lib/tasks/test_api.rake
... | ... | @@ -42,6 +42,26 @@ namespace :test_api do |
42 | 42 | return error_message.blank? ? [success_message, false] : [error_message, true] |
43 | 43 | end |
44 | 44 | |
45 | + desc "Ensure that an idea: appearances on left + appearances on right >= (wins + losses + skips)" | |
46 | + task :verify_choice_appearances_and_votes => :environment do | |
47 | + choice = Choice.find(ENV["choice_id"]) | |
48 | + puts verify_choice_appearances_and_votes(choice).inspect | |
49 | + end | |
50 | + | |
51 | + def verify_choice_appearances_and_votes(choice) | |
52 | + success_message = "Choice has more appearances than votes and skips" | |
53 | + prompts_on_left = choice.prompts_on_the_left { |p| p.id } | |
54 | + prompts_on_right = choice.prompts_on_the_right { |p| p.id } | |
55 | + all_prompt_ids = prompts_on_left + prompts_on_right | |
56 | + all_appearances = Appearance.count(:conditions => { :prompt_id => all_prompt_ids}) | |
57 | + skips = Skip.count(:conditions => {:prompt_id => all_prompt_ids}) | |
58 | + | |
59 | + if all_appearances < choice.wins + choice.losses + skips | |
60 | + error_message = "Choice #{choice.id} in Question ##{choice.question_id} has fewer appearances than wins + losses + skips" | |
61 | + end | |
62 | + return error_message.blank? ? [success_message, false] : [error_message, true] | |
63 | + end | |
64 | + | |
45 | 65 | desc "Don't run unless you know what you are doing" |
46 | 66 | task(:generate_lots_of_votes => :environment) do |
47 | 67 | if Rails.env.production? |
... | ... | @@ -439,6 +459,11 @@ namespace :test_api do |
439 | 459 | print "Either 0 or 100 This score is wrong! #{choice.id} , Question ID: #{question.id}, #{cached_score}, #{generated_score}, updated: #{choice.updated_at}\n" |
440 | 460 | end |
441 | 461 | |
462 | + message, error_occurred = verify_choice_appearances_and_votes(choice) | |
463 | + if error_occurred | |
464 | + error_message += message | |
465 | + end | |
466 | + | |
442 | 467 | |
443 | 468 | if cached_score >= 50 |
444 | 469 | total_scores_gte_fifty +=1 | ... | ... |