ECOM-3415 make sure all the xseries programs associated with a course is displayed

This commit is contained in:
Simon Chen
2016-03-01 10:11:43 -05:00
parent 64b01e9e48
commit b47a6d592f
6 changed files with 71 additions and 65 deletions

View File

@@ -107,7 +107,7 @@ class TestProgramRetrieval(ProgramsApiConfigMixin, ProgramsDataMixin,
for course_code in program['course_codes']:
for run in course_code['run_modes']:
course_key = run['course_key']
expected[course_key] = program
expected.setdefault(course_key, []).append(program)
self.assertEqual(actual, expected)

View File

@@ -61,7 +61,7 @@ def get_programs_for_dashboard(user, course_keys):
# Reindex the result returned by the Programs API from:
# program -> course code -> course run
# to:
# course run -> program
# course run -> program_array
# Ignore course runs not present in the user's active enrollments.
for program in programs:
try:
@@ -69,7 +69,7 @@ def get_programs_for_dashboard(user, course_keys):
for run in course_code['run_modes']:
course_key = run['course_key']
if course_key in course_keys:
course_programs[course_key] = program
course_programs.setdefault(course_key, []).append(program)
except KeyError:
log.exception('Unable to parse Programs API response: %r', program)