Skip to content

Commit 0583477

Browse files
committed
tests: add tests for shared uploads and requests
1 parent 4b17a72 commit 0583477

File tree

9 files changed

+348
-11
lines changed

9 files changed

+348
-11
lines changed

invenio_rdm_records/requests/community_inclusion.py

+1
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ class CommunityInclusion(RequestType):
109109
"community_roles": ["owner", "manager", "curator"],
110110
"record_permission": "preview",
111111
}
112+
resolve_topic_needs = True
112113

113114
available_actions = {
114115
"create": actions.CreateAction,

invenio_rdm_records/requests/community_submission.py

+1
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ class CommunitySubmission(ReviewRequest):
189189
allowed_creator_ref_types = ["user"]
190190
allowed_receiver_ref_types = ["community"]
191191
allowed_topic_ref_types = ["record"]
192+
resolve_topic_needs = True
192193
needs_context = {
193194
"community_roles": ["owner", "manager", "curator"],
194195
"record_permission": "preview",

invenio_rdm_records/requests/entity_resolvers.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,14 @@ def get_needs(self, ctx=None):
6969
7070
A user that can preview a record can also read its requests.
7171
"""
72+
if ctx is None or "record_permission" not in ctx:
73+
return []
74+
7275
record = self.resolve()
73-
needs = []
74-
record_permission = ctx.get("record_permission")
75-
if record_permission:
76-
needs = current_rdm_records_service.config.permission_policy_cls(
77-
record_permission, record=record
78-
).needs
76+
record_permission = ctx["record_permission"]
77+
needs = current_rdm_records_service.config.permission_policy_cls(
78+
record_permission, record=record
79+
).needs
7980
return needs
8081

8182

invenio_rdm_records/services/access/service.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from invenio_notifications.services.uow import NotificationOp
2323
from invenio_records_resources.services.errors import PermissionDeniedError
2424
from invenio_records_resources.services.records.schema import ServiceSchemaWrapper
25-
from invenio_records_resources.services.uow import unit_of_work, RecordCommitOp
25+
from invenio_records_resources.services.uow import RecordCommitOp, unit_of_work
2626
from invenio_requests.proxies import current_requests_service
2727
from invenio_search.engine import dsl
2828
from invenio_users_resources.proxies import current_user_resources

invenio_rdm_records/services/config.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@
9797
from .schemas.tombstone import TombstoneSchema
9898
from .search_params import (
9999
MetricsParam,
100-
SharedOrMyDraftsParam,
101100
PublishedRecordsParam,
101+
SharedOrMyDraftsParam,
102102
StatusParam,
103103
)
104104
from .sort import VerifiedRecordsSortParam

invenio_rdm_records/services/search_params.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@
88

99
"""Search parameter interpreter API."""
1010

11-
from invenio_search.engine import dsl
12-
1311
from invenio_access.permissions import authenticated_user
1412
from invenio_records_resources.services.records.params.base import ParamInterpreter
13+
from invenio_search.engine import dsl
1514

16-
from invenio_rdm_records.services.generators import AccessGrant
1715
from invenio_rdm_records.records.systemfields.deletion_status import (
1816
RecordDeletionStatusEnum,
1917
)
18+
from invenio_rdm_records.services.generators import AccessGrant
2019

2120

2221
class StatusParam(ParamInterpreter):

tests/resources/test_resources.py

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import arrow
1818
import pytest
19+
from invenio_accounts.testutils import login_user_via_session
1920
from invenio_requests import current_requests_service
2021
from marshmallow_utils.permissions import FieldPermissionError
2122

tests/resources/test_serialized_links.py

+2
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ def test_draft_links(client, draft_json, minimal_record, headers):
5757
"self": f"https://127.0.0.1:5000/api/records/{pid_value}/draft",
5858
"review": f"https://127.0.0.1:5000/api/records/{pid_value}/draft/review", # noqa
5959
"self_html": f"https://127.0.0.1:5000/uploads/{pid_value}",
60+
"preview_html": f"https://127.0.0.1:5000/records/{pid_value}?preview=1",
6061
"publish": f"https://127.0.0.1:5000/api/records/{pid_value}/draft/actions/publish", # noqa
6162
"record": f"https://127.0.0.1:5000/api/records/{pid_value}",
6263
"record_html": f"https://127.0.0.1:5000/records/{pid_value}",
@@ -95,6 +96,7 @@ def test_record_links(client, published_json, headers):
9596
expected_links = {
9697
"self": f"https://127.0.0.1:5000/api/records/{pid_value}",
9798
"self_html": f"https://127.0.0.1:5000/records/{pid_value}",
99+
"preview_html": f"https://127.0.0.1:5000/records/{pid_value}?preview=1",
98100
"doi": f"https://handle.stage.datacite.org/{doi_value}",
99101
"self_doi": f"https://handle.stage.datacite.org/{doi_value}",
100102
"self_doi_html": f"https://127.0.0.1:5000/doi/{doi_value}",

0 commit comments

Comments
 (0)