@@ -1249,6 +1249,35 @@ def test_migrate_authz_to_legacy_course_roles_user_not_added(self):
12491249 self .assertEqual (len (errors ), 12 )
12501250 self .assertEqual (len (successes ), 0 )
12511251
1252+ @patch ("openedx_authz.api.data.CourseOverview" , CourseOverview )
1253+ def test_migrate_authz_to_legacy_course_roles_skips_excluded_course_ids (self ):
1254+ """Course-level assignments whose scope is listed in excluded_course_ids are skipped."""
1255+ migrate_legacy_course_roles_to_authz (
1256+ CourseAccessRole ,
1257+ course_id_list = [self .course_id ],
1258+ org_id = None ,
1259+ delete_after_migration = False ,
1260+ )
1261+
1262+ errors , successes = migrate_authz_to_legacy_course_roles (
1263+ CourseAccessRole ,
1264+ UserSubject ,
1265+ course_id_list = [self .course_id ],
1266+ org_id = None ,
1267+ delete_after_migration = False ,
1268+ excluded_course_ids = frozenset ({self .course_id }),
1269+ )
1270+
1271+ self .assertEqual (len (successes ), 0 )
1272+ self .assertEqual (len (errors ), 12 )
1273+ for entry in errors :
1274+ self .assertEqual (entry .reason , MigrationErrorReason .SKIPPED_FOR_FLAG_OVERRIDE )
1275+ self .assertEqual (
1276+ entry .details ,
1277+ "Course-level authoring flag override opposes this organization-level transition" ,
1278+ )
1279+ self .assertEqual (entry .scope , self .course_id )
1280+
12521281 def create_library_env (self ):
12531282 """
12541283 Helper method to create a ContentLibrary environment for testing.
0 commit comments