Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 19 additions & 3 deletions courses/views/v2/views_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,25 @@ def test_get_programs(
programs_data = resp.json()["results"]
assert len(programs_data) == Pagination.page_size
for program, program_data in zip(programs, programs_data):
# Clear cached property to ensure consistent data between API and serializer
if hasattr(program, "_courses_with_requirements_data"):
delattr(program, "_courses_with_requirements_data")
# Clear all cached properties to ensure consistent data between API and serializer
cached_properties = [
"_courses_with_requirements_data",
"page",
"num_courses",
"requirements_root",
"required_courses",
"required_title",
"elective_courses",
"elective_title",
"minimum_elective_courses_requirement",
]
for prop in cached_properties:
if hasattr(program, prop):
try:
delattr(program, prop)
except AttributeError:
# Some cached properties may not be deletable, skip them
pass
assert_drf_json_equal(
program_data, ProgramSerializer(program).data, ignore_order=True
)
Expand Down
Loading