diff --git a/lms/services/assignment.py b/lms/services/assignment.py index 88d1ef53e0..233c1b1623 100644 --- a/lms/services/assignment.py +++ b/lms/services/assignment.py @@ -232,8 +232,7 @@ def get_assignments( :param course_ids: only return assignments that belong to this course. :param h_userids: return only assignments where these users are members. """ - - query = select(Assignment) + query = select(Assignment).where(Assignment.title.is_not(None)) # Let's crate no op clauses by default to avoid having to check the presence of these filters instructor_h_userid_clause = cast(BinaryExpression, false()) diff --git a/tests/unit/lms/services/assignment_test.py b/tests/unit/lms/services/assignment_test.py index 1cc12e731d..8cf10cf79e 100644 --- a/tests/unit/lms/services/assignment_test.py +++ b/tests/unit/lms/services/assignment_test.py @@ -294,6 +294,18 @@ def test_get_assignments( assert db_session.scalars(query).all() == [assignment] + def test_get_assignments_excludes_empty_titles(self, db_session, svc): + course = factories.Course() + assignment = factories.Assignment(title=None) + factories.AssignmentGrouping( + grouping=course, assignment=assignment, updated=date(2022, 1, 1) + ) + db_session.flush() + + assert not db_session.scalars( + svc.get_assignments(course_ids=[course.id]) + ).all() == [assignment] + def test_get_assignments_by_course_id_with_duplicate( self, db_session, svc, application_instance, organization ):