diff --git a/app/models/assignment.rb b/app/models/assignment.rb index 8931fb8af24..aae40dce313 100644 --- a/app/models/assignment.rb +++ b/app/models/assignment.rb @@ -636,15 +636,13 @@ class Assignment < ActiveRecord::Base when "percent" result = "#{score_to_grade_percent(score)}%" when "pass_fail" - if self.points_possible.to_f > 0.0 - passed = score.to_f == self.points_possible.to_f + if points_possible && points_possible > 0 + passed = score > 0 elsif given_grade # the score for a zero-point pass/fail assignment could be considered # either pass *or* fail, so look at what the current given grade is # instead passed = ["complete", "pass"].include?(given_grade) - else - passed = score.to_f > 0.0 end result = passed ? "complete" : "incomplete" when "letter_grade", "gpa_scale" diff --git a/spec/models/assignment_spec.rb b/spec/models/assignment_spec.rb index c08d1184b44..aa028bf398e 100644 --- a/spec/models/assignment_spec.rb +++ b/spec/models/assignment_spec.rb @@ -2450,6 +2450,18 @@ describe Assignment do @assignment.save! s.reload.version_number.should == 2 end + + it "works for pass/fail assignments" do + student1, student2 = n_students_in_course(2) + a = @course.assignments.create! grading_type: "pass_fail", points_possible: 5 + sub1 = a.grade_student(student1, grade: "complete").first + sub2 = a.grade_student(student2, grade: "incomplete").first + + a.update_attribute :points_possible, 10 + + sub1.reload.grade.should == "complete" + sub2.reload.grade.should == "incomplete" + end end describe '#graded_count' do