Commit beb3b15fdf53fbd43b334b6040bf5604514e8747
1 parent
c99242f9
Exists in
master
and in
1 other branch
test ensures answered_appearances == skips + votes
Add test that checks per question instead of globally
Showing
1 changed file
with
27 additions
and
0 deletions
Show diff stats
lib/tasks/test_api.rake
| ... | ... | @@ -339,6 +339,13 @@ namespace :test_api do |
| 339 | 339 | successes << message |
| 340 | 340 | end |
| 341 | 341 | |
| 342 | + message, error_occurred = answered_appearances_equals_votes_and_skips(question) | |
| 343 | + if error_occurred | |
| 344 | + errors << message | |
| 345 | + else | |
| 346 | + successes << message | |
| 347 | + end | |
| 348 | + | |
| 342 | 349 | |
| 343 | 350 | message, error_occurred = check_each_choice_appears_within_n_stddevs(question) |
| 344 | 351 | if error_occurred |
| ... | ... | @@ -650,6 +657,26 @@ namespace :test_api do |
| 650 | 657 | #end |
| 651 | 658 | return error_message.blank? ? [success_message, false] : [error_message, true] |
| 652 | 659 | end |
| 660 | + | |
| 661 | + desc "Ensure that a question has: answered_appearances == votes + skips" | |
| 662 | + task :answered_appearances_equals_votes_and_skips => :environment do | |
| 663 | + question = Question.find(ENV["question_id"]) | |
| 664 | + puts answered_appearances_equals_votes_and_skips(question).inspect | |
| 665 | + end | |
| 666 | + | |
| 667 | + def answered_appearances_equals_votes_and_skips(question) | |
| 668 | + error_message = "" | |
| 669 | + success_message = "All vote and skip objects have an associated appearance object" | |
| 670 | + total_answered_appearances = Appearance.count(:conditions => ['answerable_id IS NOT NULL AND question_id = ?', question.id]) | |
| 671 | + total_votes = question.votes.count | |
| 672 | + total_skips = question.skips.count | |
| 673 | + if (total_answered_appearances != total_votes + total_skips) | |
| 674 | + error_message += "Question #{question.id}: answered_appearances = #{total_answered_appearances}, votes = #{total_votes}, skips = #{total_skips}" | |
| 675 | + end | |
| 676 | + | |
| 677 | + | |
| 678 | + return error_message.blank? ? [success_message, false] : [error_message, true] | |
| 679 | + end | |
| 653 | 680 | |
| 654 | 681 | def ensure_all_votes_and_skips_have_unique_appearance |
| 655 | 682 | error_message = "" | ... | ... |