From 7448c698cf4c93ba45ce2f60acaa22ece713b5b0 Mon Sep 17 00:00:00 2001 From: Manish Gupta Date: Mon, 20 Jul 2026 11:25:25 +0530 Subject: [PATCH] [WEB-8289] test: make fixture ownership real (address Copilot review) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Project and FileAsset fixtures passed created_by=create_user to objects.create(), but BaseModel.save() nulls created_by when there is no current request user (tests), so the ownership claim was silently a no-op. Instantiate + save(created_by_id=...) instead — same pattern already used for the draft — so the fixtures are accurate. Co-authored-by: Plane AI --- .../app/test_draft_to_issue_owner_scope_app.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/api/plane/tests/contract/app/test_draft_to_issue_owner_scope_app.py b/apps/api/plane/tests/contract/app/test_draft_to_issue_owner_scope_app.py index b2fbf6ea84..f2017a972e 100644 --- a/apps/api/plane/tests/contract/app/test_draft_to_issue_owner_scope_app.py +++ b/apps/api/plane/tests/contract/app/test_draft_to_issue_owner_scope_app.py @@ -53,28 +53,28 @@ def _no_activity(db): @pytest.fixture def owned_draft(db, workspace, create_user): """A draft owned by ``create_user`` (session_client), with a project + asset.""" - project = Project.objects.create( - name="Draft Project", identifier="DRP", workspace=workspace, created_by=create_user - ) + # BaseModel.save auto-sets created_by from the request user (None under + # tests), overwriting a created_by= kwarg — pass created_by_id to save so the + # fixtures' ownership is real rather than silently nulled. + project = Project(name="Draft Project", identifier="DRP", workspace=workspace) + project.save(created_by_id=create_user.id) ProjectMember.objects.create( project=project, member=create_user, workspace=workspace, role=20, is_active=True ) - # BaseModel.save auto-sets created_by from the request user (None under - # tests), overwriting a created_by= kwarg — pass created_by_id to save. draft = DraftIssue(name="Private draft", workspace=workspace, project=project) draft.save(created_by_id=create_user.id) - asset = FileAsset.objects.create( + asset = FileAsset( attributes={"name": "secret.pdf", "type": "application/pdf", "size": 1024}, asset=f"{workspace.id}/secret.pdf", size=1024, workspace=workspace, project=project, draft_issue=draft, - created_by=create_user, entity_type=FileAsset.EntityTypeContext.DRAFT_ISSUE_DESCRIPTION, is_uploaded=True, storage_metadata={"size": 1024}, ) + asset.save(created_by_id=create_user.id) return {"project": project, "draft": draft, "asset": asset}