Closed AlanCoding closed 1 month ago
Demonstrated bug with the test before the code change:
=============================================== FAILURES =============================================== _______________________________ test_delete_non_id_after_obj_assignment ________________________________ admin_api_client = <rest_framework.test.APIClient object at 0x7f83cdb8b980> nk_rd = <RoleDefinition: RoleDefinition(pk=6, name=name-key-admin)> position = <PositionModel: PositionModel object (4)>, user = <User: user> @pytest.mark.django_db def test_delete_non_id_after_obj_assignment(admin_api_client, nk_rd, position, user): nk_rd.give_permission(user, position) > position.delete() test_app/tests/rbac/compatibility/test_non_id_primary_key.py:49: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../../../venvs/awx/lib64/python3.12/site-packages/django/db/models/base.py:1132: in delete return collector.delete() ../../../../venvs/awx/lib64/python3.12/site-packages/django/db/models/deletion.py:512: in delete signals.post_delete.send( ../../../../venvs/awx/lib64/python3.12/site-packages/django/dispatch/dispatcher.py:177: in send (receiver, receiver(signal=self, sender=sender, **named)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ instance = <PositionModel: PositionModel object (4)>, args = () kwargs = {'origin': <PositionModel: PositionModel object (4)>, 'sender': <class 'test_app.models.PositionModel'>, 'signal': <django.db.models.signals.ModelSignal object at 0x7f83d006d220>, 'using': 'default'} ct = <ContentType: test_app | position model> def rbac_post_delete_remove_object_roles(instance, *args, **kwargs): """ Call this when deleting an object to cascade delete its object roles Deleting a team can have consequences for the rest of the graph """ if instance._meta.model_name == permission_registry.team_model._meta.model_name: indirectly_affected_roles = set() indirectly_affected_roles.update(team_ancestor_roles(instance)) for team_role in instance.__rbac_stashed_member_roles: indirectly_affected_roles.update(team_role.descendent_roles()) compute_team_member_roles() compute_object_role_permissions(object_roles=indirectly_affected_roles) # Similar to user deletion, clean up any orphaned object roles ObjectRole.objects.filter(users__isnull=True, teams__isnull=True).delete() ct = permission_registry.content_type_model.objects.get_for_model(instance) > ObjectRole.objects.filter(content_type=ct, object_id=instance.id).delete() E AttributeError: 'PositionModel' object has no attribute 'id' ansible_base/rbac/triggers.py:255: AttributeError
Issues 0 New issues 0 Accepted issues
Measures 0 Security Hotspots 100.0% Coverage on New Code 0.0% Duplication on New Code
See analysis details on SonarCloud
Demonstrated bug with the test before the code change: