@@ -44,19 +44,9 @@ def test_cleanup_orphaned_permissions_deletes_unregistered_unreferenced():
4444 # Create a DABContentType for a model not in the permission registry
4545 dab_fake_ct = DABContentType .objects .create (app_label = 'fake_app' , model = 'fakemodel' , service = 'local' )
4646
47- # Create a permission for this fake model
47+ # Create a permission for this fake model (should be deleted)
4848 orphaned_permission = DABPermission .objects .create (name = 'Can view fake model' , content_type = dab_fake_ct , codename = 'view_fakemodel' )
4949
50- # For registered model, let's use an existing DABContentType from the test setup
51- # Get any existing DABContentType that represents a registered model
52- existing_registered_ct = DABContentType .objects .filter (app_label = 'test_app' ).first ()
53-
54- if not existing_registered_ct :
55- # Create one if none exist
56- existing_registered_ct = DABContentType .objects .create (app_label = 'test_app' , model = 'organization' , service = 'shared' )
57-
58- valid_permission = DABPermission .objects .create (name = 'Can view registered model' , content_type = existing_registered_ct , codename = 'view_registered' )
59-
6050 initial_count = DABPermission .objects .count ()
6151
6252 # Run cleanup
@@ -66,7 +56,6 @@ def test_cleanup_orphaned_permissions_deletes_unregistered_unreferenced():
6656 assert deleted_count == 1
6757 assert DABPermission .objects .count () == initial_count - 1
6858 assert not DABPermission .objects .filter (id = orphaned_permission .id ).exists ()
69- assert DABPermission .objects .filter (id = valid_permission .id ).exists ()
7059
7160
7261@pytest .mark .django_db
@@ -94,56 +83,3 @@ def test_cleanup_orphaned_permissions_preserves_referenced():
9483 assert deleted_count == 0
9584 assert DABPermission .objects .count () == initial_count
9685 assert DABPermission .objects .filter (id = referenced_permission .id ).exists ()
97-
98-
99- @pytest .mark .django_db
100- def test_cleanup_orphaned_permissions_preserves_registered ():
101- """Test that cleanup_orphaned_permissions preserves all permissions for registered models.
102-
103- Generated by Claude Sonnet 4 (claude-sonnet-4@20250514)
104- """
105- initial_count = DABPermission .objects .count ()
106-
107- # Run cleanup - should not delete any existing permissions since they're for registered models
108- deleted_count = cleanup_orphaned_permissions (apps )
109-
110- # Verify no permissions were deleted
111- assert deleted_count == 0
112- assert DABPermission .objects .count () == initial_count
113-
114-
115- @pytest .mark .django_db
116- def test_cleanup_orphaned_permissions_mixed_scenario ():
117- """Test cleanup with a mix of registered, unregistered referenced, and unregistered unreferenced permissions.
118-
119- Generated by Claude Sonnet 4 (claude-sonnet-4@20250514)
120- """
121- # Create DABContentTypes for models not in the permission registry
122- dab_fake_ct1 = DABContentType .objects .create (app_label = 'fake_app' , model = 'orphanedmodel' , service = 'local' )
123- dab_fake_ct2 = DABContentType .objects .create (app_label = 'fake_app' , model = 'referencedmodel' , service = 'local' )
124-
125- # Create orphaned permission (should be deleted)
126- orphaned_permission = DABPermission .objects .create (name = 'Can view orphaned model' , content_type = dab_fake_ct1 , codename = 'view_orphanedmodel' )
127-
128- # Create referenced permission (should be preserved)
129- referenced_permission = DABPermission .objects .create (name = 'Can view referenced model' , content_type = dab_fake_ct2 , codename = 'view_referencedmodel' )
130-
131- # Create a RoleDefinition that references the second permission
132- role_def = RoleDefinition .objects .create (name = 'Referenced Role' , content_type = dab_fake_ct2 )
133- role_def .permissions .add (referenced_permission )
134-
135- # Get count of valid permissions (for registered models)
136- valid_perms_count = DABPermission .objects .exclude (id__in = [orphaned_permission .id , referenced_permission .id ]).count ()
137-
138- initial_count = DABPermission .objects .count ()
139-
140- # Run cleanup
141- deleted_count = cleanup_orphaned_permissions (apps )
142-
143- # Verify only the orphaned permission was deleted
144- assert deleted_count == 1
145- assert DABPermission .objects .count () == initial_count - 1
146- assert not DABPermission .objects .filter (id = orphaned_permission .id ).exists ()
147- assert DABPermission .objects .filter (id = referenced_permission .id ).exists ()
148- # All other permissions should still exist
149- assert DABPermission .objects .exclude (id = referenced_permission .id ).count () == valid_perms_count
0 commit comments