Skip to content

Commit e1d16b4

Browse files
committed
test: add tests
1 parent c73c019 commit e1d16b4

File tree

3 files changed

+41
-4
lines changed

3 files changed

+41
-4
lines changed

lms/djangoapps/course_home_api/progress/tests/test_views.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -282,8 +282,8 @@ def test_url_hidden_if_subsection_hide_after_due(self):
282282
assert hide_after_due_subsection['url'] is None
283283

284284
@ddt.data(
285-
(True, 0.7), # midterm and final are visible to staff
286-
(False, 0.3), # just the midterm is visible to learners
285+
(True, 0.72), # lab, midterm and final are visible to staff
286+
(False, 0.32), # Only lab and midterm is visible to learners
287287
)
288288
@ddt.unpack
289289
def test_course_grade_considers_subsection_grade_visibility(self, is_staff, expected_percent):
@@ -301,14 +301,18 @@ def test_course_grade_considers_subsection_grade_visibility(self, is_staff, expe
301301
never = self.add_subsection_with_problem(format='Homework', show_correctness='never')
302302
always = self.add_subsection_with_problem(format='Midterm Exam', show_correctness='always')
303303
past_due = self.add_subsection_with_problem(format='Final Exam', show_correctness='past_due', due=tomorrow)
304+
never_but_show_grade = self.add_subsection_with_problem(
305+
format='Lab', show_correctness='never_but_include_grade'
306+
)
304307

305308
answer_problem(self.course, get_mock_request(self.user), never)
306309
answer_problem(self.course, get_mock_request(self.user), always)
307310
answer_problem(self.course, get_mock_request(self.user), past_due)
311+
answer_problem(self.course, get_mock_request(self.user), never_but_show_grade)
308312

309313
# First, confirm the grade in the database - it should never change based on user state.
310314
# This is midterm and final and a single problem added together.
311-
assert CourseGradeFactory().read(self.user, self.course).percent == 0.72
315+
assert CourseGradeFactory().read(self.user, self.course).percent == 0.73
312316

313317
response = self.client.get(self.url)
314318
assert response.status_code == 200

lms/djangoapps/courseware/tests/test_views.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1782,6 +1782,14 @@ def assert_progress_page_show_grades(self, response, show_correctness, due_date,
17821782
(ShowCorrectness.PAST_DUE, TODAY, True),
17831783
(ShowCorrectness.PAST_DUE, TOMORROW, False),
17841784
(ShowCorrectness.PAST_DUE, TOMORROW, True),
1785+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, None, False),
1786+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, None, True),
1787+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, YESTERDAY, False),
1788+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, YESTERDAY, True),
1789+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, TODAY, False),
1790+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, TODAY, True),
1791+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, TOMORROW, False),
1792+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, TOMORROW, True),
17851793
)
17861794
@ddt.unpack
17871795
def test_progress_page_no_problem_scores(self, show_correctness, due_date_name, graded):
@@ -1822,6 +1830,14 @@ def test_progress_page_no_problem_scores(self, show_correctness, due_date_name,
18221830
(ShowCorrectness.PAST_DUE, TODAY, True, True),
18231831
(ShowCorrectness.PAST_DUE, TOMORROW, False, False),
18241832
(ShowCorrectness.PAST_DUE, TOMORROW, True, False),
1833+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, None, False, False),
1834+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, None, True, False),
1835+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, YESTERDAY, False, False),
1836+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, YESTERDAY , True, False),
1837+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, TODAY, False, False),
1838+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, TODAY, True, False),
1839+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, TOMORROW, False, False),
1840+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, TOMORROW, True, False),
18251841
)
18261842
@ddt.unpack
18271843
def test_progress_page_hide_scores_from_learner(self, show_correctness, due_date_name, graded, show_grades):
@@ -1874,11 +1890,20 @@ def test_progress_page_hide_scores_from_learner(self, show_correctness, due_date
18741890
(ShowCorrectness.PAST_DUE, TODAY, True, True),
18751891
(ShowCorrectness.PAST_DUE, TOMORROW, False, True),
18761892
(ShowCorrectness.PAST_DUE, TOMORROW, True, True),
1893+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, None, False, False),
1894+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, None, True, False),
1895+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, YESTERDAY, False, False),
1896+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, YESTERDAY, True, False),
1897+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, TODAY, False, False),
1898+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, TODAY, True, False),
1899+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, TOMORROW, False, False),
1900+
(ShowCorrectness.NEVER_BUT_INCLUDE_GRADE, TOMORROW, True, False),
18771901
)
18781902
@ddt.unpack
18791903
def test_progress_page_hide_scores_from_staff(self, show_correctness, due_date_name, graded, show_grades):
18801904
"""
1881-
Test that problem scores are hidden from staff viewing a learner's progress page only if show_correctness=never.
1905+
Test that problem scores are hidden from staff viewing a learner's progress page only if show_correctness is never
1906+
or never_but_include_grade.
18821907
"""
18831908
due_date = self.DATES[due_date_name]
18841909
self.setup_course(show_correctness=show_correctness, due_date=due_date, graded=graded)

xmodule/tests/test_graders.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -493,3 +493,11 @@ def test_show_correctness_past_due(self, due_date_str, has_staff_access, expecte
493493
due_date = getattr(self, due_date_str)
494494
assert ShowCorrectness.correctness_available(ShowCorrectness.PAST_DUE, due_date, has_staff_access) ==\
495495
expected_result
496+
497+
@ddt.data(True, False)
498+
def test_show_correctness_never_but_include_grade(self, has_staff_access):
499+
"""
500+
Test that show_correctness="never_but_include_grade" hides correctness from learners and course staff.
501+
"""
502+
assert not ShowCorrectness.correctness_available(show_correctness=ShowCorrectness.NEVER_BUT_INCLUDE_GRADE,
503+
has_staff_access=has_staff_access)

0 commit comments

Comments
 (0)