diff --git a/cms/djangoapps/contentstore/management/commands/backfill_orgs_and_org_courses.py b/cms/djangoapps/contentstore/management/commands/backfill_orgs_and_org_courses.py index eb1b440e15..7816380b47 100644 --- a/cms/djangoapps/contentstore/management/commands/backfill_orgs_and_org_courses.py +++ b/cms/djangoapps/contentstore/management/commands/backfill_orgs_and_org_courses.py @@ -82,7 +82,7 @@ class Command(BaseCommand): ({"short_name": orgslug}, courseid) for orgslug, courseid in sorted(orgslug_courseid_pairs) ] - if not confirm_changes(options, orgs, orgslug_courseid_pairs): + if not confirm_changes(options, orgs, org_courseid_pairs): print("No changes applied.") return print("Applying changes...") @@ -91,7 +91,7 @@ class Command(BaseCommand): print("Changes applied successfully.") -def confirm_changes(options, orgs, orgslug_courseid_pairs): +def confirm_changes(options, orgs, org_courseid_pairs): """ Should we apply the changes to the database? @@ -112,7 +112,7 @@ def confirm_changes(options, orgs, orgslug_courseid_pairs): if options.get('apply'): return True organizations_api.bulk_add_organizations(orgs, dry_run=True) - organizations_api.bulk_add_organization_courses(orgslug_courseid_pairs, dry_run=True) + organizations_api.bulk_add_organization_courses(org_courseid_pairs, dry_run=True) if options.get('dry'): return False answer = "" diff --git a/cms/djangoapps/contentstore/management/commands/tests/test_backfill_orgs_and_org_courses.py b/cms/djangoapps/contentstore/management/commands/tests/test_backfill_orgs_and_org_courses.py index 8fc7f61e7b..555a5c9702 100644 --- a/cms/djangoapps/contentstore/management/commands/tests/test_backfill_orgs_and_org_courses.py +++ b/cms/djangoapps/contentstore/management/commands/tests/test_backfill_orgs_and_org_courses.py @@ -38,7 +38,8 @@ class BackfillOrgsAndOrgCoursesTest(SharedModuleStoreTestCase): `course_overviews`, `modulestore`, and `organizations`, respectively. """ - def test_end_to_end(self): + @ddt.data("--dry", "--apply") + def test_end_to_end(self, run_type): """ Test the happy path of the backfill command without any mocking. """ @@ -86,20 +87,30 @@ class BackfillOrgsAndOrgCoursesTest(SharedModuleStoreTestCase): assert len(get_organization_courses(get_organization_by_short_name('org_B'))) == 0 # Run the backfill. - call_command("backfill_orgs_and_org_courses", "--apply") + call_command("backfill_orgs_and_org_courses", run_type) - # Confirm ending condition: - # All five orgs present. Each org a has expected number of org-course linkages. - assert set( - org["short_name"] for org in get_organizations() - ) == { - "org_A", "org_B", "org_C", "org_D", "org_E" - } - assert len(get_organization_courses(get_organization_by_short_name('org_A'))) == 2 - assert len(get_organization_courses(get_organization_by_short_name('org_B'))) == 0 - assert len(get_organization_courses(get_organization_by_short_name('org_C'))) == 3 - assert len(get_organization_courses(get_organization_by_short_name('org_D'))) == 1 - assert len(get_organization_courses(get_organization_by_short_name('org_E'))) == 0 + if run_type == "--dry": + # Confirm ending conditions are the same as the starting conditions. + assert set( + org["short_name"] for org in get_organizations() + ) == { + "org_A", "org_B" + } + assert len(get_organization_courses(get_organization_by_short_name('org_A'))) == 1 + assert len(get_organization_courses(get_organization_by_short_name('org_B'))) == 0 + else: + # Confirm ending condition: + # All five orgs present. Each org a has expected number of org-course linkages. + assert set( + org["short_name"] for org in get_organizations() + ) == { + "org_A", "org_B", "org_C", "org_D", "org_E" + } + assert len(get_organization_courses(get_organization_by_short_name('org_A'))) == 2 + assert len(get_organization_courses(get_organization_by_short_name('org_B'))) == 0 + assert len(get_organization_courses(get_organization_by_short_name('org_C'))) == 3 + assert len(get_organization_courses(get_organization_by_short_name('org_D'))) == 1 + assert len(get_organization_courses(get_organization_by_short_name('org_E'))) == 0 @ddt.data( {