Skip to content

Commit 80ab307

Browse files
committed
fix submissions flow tests
1 parent c88a2da commit 80ab307

File tree

8 files changed

+110
-65
lines changed

8 files changed

+110
-65
lines changed

api_tests/preprints/views/test_preprint_list.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -376,8 +376,7 @@ def manual_guid_payload(self):
376376
def test_fail_create_prerprint_with_manual_guid(self):
377377
public_project_payload = build_preprint_create_payload(self.public_project._id, self.provider._id, attrs=self.manual_guid_payload)
378378
res = self.app.post_json_api(self.url, public_project_payload, auth=self.user.auth, expect_errors=True)
379-
assert res.status_code == 400
380-
print(res.status_code)
379+
assert res.status_code == 403
381380

382381
def test_create_preprint_with_manual_guid(self):
383382
public_project_payload = build_preprint_create_payload(self.public_project._id, self.provider._id, attrs=self.manual_guid_payload)
@@ -513,7 +512,7 @@ def test_no_provider_given(self):
513512
no_providers_payload = build_preprint_create_payload()
514513
res = self.app.post_json_api(self.url, no_providers_payload, auth=self.user.auth, expect_errors=True)
515514

516-
assert res.status_code == 400
515+
assert res.status_code == 403
517516
assert res.json['errors'][0]['detail'] == 'You must specify a valid provider to create a preprint.'
518517

519518
def test_invalid_provider_given(self):

api_tests/registrations/views/test_registration_list.py

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1936,7 +1936,8 @@ def test_bulk_update_embargo_logged_in_contrib(
19361936
assert registration_one.is_pending_embargo_termination is False
19371937
assert registration_two.is_pending_embargo_termination is False
19381938

1939-
res = app.put_json_api(url, public_payload, auth=user.auth, bulk=True)
1939+
with capture_notifications():
1940+
res = app.put_json_api(url, public_payload, auth=user.auth, bulk=True)
19401941
assert res.status_code == 200
19411942
assert ({registration_one._id, registration_two._id} == {
19421943
res.json['data'][0]['id'], res.json['data'][1]['id']})
@@ -2025,7 +2026,8 @@ def update_contributor_attribute_request(self, auth_user, contributor, permissio
20252026
return self.app.patch_json_api(url, payload, auth=auth_user.auth, expect_errors=expect_errors)
20262027

20272028
def test_add_contributor(self):
2028-
res = self.add_contributor_request(auth_user=self.user, contributor=self.contributor)
2029+
with capture_notifications():
2030+
res = self.add_contributor_request(auth_user=self.user, contributor=self.contributor)
20292031
assert res.status_code == 201
20302032
assert res.json['data']['embeds']['users']['data']['id'] == self.contributor._id
20312033
assert self.contributor.groups.filter(name__icontains=f'{self.public_registration.id}_write').exists()
@@ -2051,7 +2053,8 @@ def test_add_contributor(self):
20512053
assert self.contributor.groups.filter(name__icontains=f'{self.public_registration.id}_read').exists() is False
20522054

20532055
def test_remove_contributor(self):
2054-
self.add_contributor_request(self.user, self.contributor)
2056+
with capture_notifications():
2057+
self.add_contributor_request(self.user, self.contributor)
20552058
res = self.remove_contributor_request(self.user, self.contributor)
20562059
assert res.status_code == 204
20572060
assert self.contributor.groups.exists() is False
@@ -2063,11 +2066,12 @@ def test_remove_contributor(self):
20632066

20642067
def test_contributor_can_edit_title_if_has_permission(self):
20652068
TITLE = 'New Title'
2066-
self.add_contributor_request(
2067-
auth_user=self.user,
2068-
contributor=self.contributor,
2069-
permission='read'
2070-
)
2069+
with capture_notifications():
2070+
self.add_contributor_request(
2071+
auth_user=self.user,
2072+
contributor=self.contributor,
2073+
permission='read'
2074+
)
20712075
res = self.update_registration_attribute_request(
20722076
auth_user=self.contributor,
20732077
expect_errors=True,
@@ -2091,17 +2095,17 @@ def test_contributor_cannot_edit_contributors(self):
20912095
for permission in ['read', 'write']:
20922096
contributor_to_add = AuthUserFactory()
20932097
contributor_to_remove = AuthUserFactory()
2094-
self.add_contributor_request(
2095-
auth_user=self.user,
2096-
contributor=self.contributor,
2097-
permission=permission
2098-
)
2099-
self.add_contributor_request(
2100-
auth_user=self.user,
2101-
contributor=contributor_to_remove,
2102-
permission=permission
2103-
)
21042098
with capture_notifications():
2099+
self.add_contributor_request(
2100+
auth_user=self.user,
2101+
contributor=self.contributor,
2102+
permission=permission
2103+
)
2104+
self.add_contributor_request(
2105+
auth_user=self.user,
2106+
contributor=contributor_to_remove,
2107+
permission=permission
2108+
)
21052109
res = self.add_contributor_request(
21062110
auth_user=self.contributor,
21072111
contributor=contributor_to_add,
@@ -2120,11 +2124,12 @@ def test_contributor_cannot_edit_contributors(self):
21202124
self.remove_contributor_request(self.user, contributor_to_remove)
21212125

21222126
def test_only_admin_can_update_permissions_and_bibliographic_status(self):
2123-
self.add_contributor_request(
2124-
auth_user=self.user,
2125-
contributor=self.contributor,
2126-
permission='read'
2127-
)
2127+
with capture_notifications():
2128+
self.add_contributor_request(
2129+
auth_user=self.user,
2130+
contributor=self.contributor,
2131+
permission='read'
2132+
)
21282133
res = self.update_contributor_attribute_request(
21292134
self.user,
21302135
self.contributor,

osf/models/collection_submission.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,9 @@ def _notify_moderated_rejected(self, event_data):
217217
'requester_fullname': event_data.kwargs.get('user').fullname,
218218
'is_admin': self.guid.referent.has_permission(contributor, ADMIN),
219219
'collection_title': self.collection.title,
220+
'collection_provider_name': self.collection.provider.name,
221+
'collections_link': DOMAIN + 'collections/' + self.collection.provider._id,
222+
'node_absolute_url': self.guid.referent.get_absolute_url(),
220223
'profile_image_url': contributor.profile_image_url(),
221224
'message': f'submission of "{self.collection.title} was rejected',
222225
'node_title': self.guid.referent.title,
@@ -254,6 +257,7 @@ def _notify_removed(self, event_data):
254257

255258
event_context_base = {
256259
'remover_fullname': user.fullname,
260+
'remover_absolute_url': user.get_absolute_url(),
257261
'requester_fullname': user.fullname,
258262
'collection_id': self.collection.id,
259263
'collection_title': self.collection.title,
@@ -293,6 +297,13 @@ def _notify_removed(self, event_data):
293297
'is_admin': node.has_permission(contributor, ADMIN),
294298
'rejection_justification': event_data.kwargs.get('comment'),
295299
'collections_title': self.collection.title,
300+
'collection_provider_name': self.collection.provider.name,
301+
'collection_provider__id': self.collection.provider._id,
302+
'remover_absolute_url': user.get_absolute_url() if user is not None else None,
303+
'node_absolute_url': node.absolute_url,
304+
'collection_provider': self.collection.provider.name,
305+
'collections_link': DOMAIN + 'collections/' + self.collection.provider._id,
306+
'user_fullname': contributor.fullname,
296307
'is_request_email': False,
297308
'message': '',
298309
'localized_timestamp': str(timezone.now()),
@@ -308,7 +319,13 @@ def _notify_removed(self, event_data):
308319
'requester_contributor_names': ''.join(
309320
self.guid.referent.contributors.values_list('fullname', flat=True)),
310321
'localized_timestamp': str(timezone.now()),
322+
'user_fullname': contributor.fullname,
311323
'collections_title': self.collection.title,
324+
'collection_provider_name': self.collection.provider.name,
325+
'collection_provider__id': self.collection.provider._id,
326+
'collection_provider': self.collection.provider.name,
327+
'collections_link': DOMAIN + 'collections/' + self.collection.provider._id,
328+
'node_absolute_url': node.get_absolute_url(),
312329
'is_request_email': False,
313330
'message': '',
314331
'is_admin': node.has_permission(contributor, ADMIN),
@@ -373,6 +390,8 @@ def _notify_cancel(self, event_data):
373390
'collections_link': collections_link,
374391
'collection_title': self.collection.title,
375392
'collection_provider_name': collection_provider_name,
393+
'node_absolute_url"': node.get_absolute_url(),
394+
'collection_provider': collection_provider_name,
376395
'domain': settings.DOMAIN,
377396
'is_request_email': False,
378397
'message': '',

osf/models/sanctions.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -557,6 +557,7 @@ def _email_template_context(self,
557557
'reviewable__id': self._get_registration()._id,
558558
'reviewable_absolute_url': self._get_registration().absolute_url,
559559
'reviewable_provider_name': self._get_registration().provider.name,
560+
'reviewable_provider': self._get_registration().provider.name,
560561
'reviewable_provider__id': self._get_registration().provider._id,
561562
'reviewable_registered_from_absolute_url': self._get_registration().registered_from.absolute_url,
562563
'reviewable_withdrawal_justification': self._get_registration().withdrawal_justification,

osf_tests/test_elastic_search.py

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ def test_only_public_collections_submissions_are_searchable(self):
108108
docs = query_collections('Salif Keita')['results']
109109
assert len(docs) == 0
110110

111-
self.collection_public.collect_object(self.node_private, self.user)
111+
with capture_notifications():
112+
self.collection_public.collect_object(self.node_private, self.user)
112113
self.reg_collection.collect_object(self.reg_private, self.user)
113114

114115
docs = query_collections('Salif Keita')['results']
@@ -149,8 +150,9 @@ def test_index_on_submission_privacy_changes(self):
149150
docs = query_collections('Salif Keita')['results']
150151
assert len(docs) == 0
151152

152-
self.collection_public.collect_object(self.node_one, self.user)
153-
self.collection_one.collect_object(self.node_one, self.user)
153+
with capture_notifications():
154+
self.collection_public.collect_object(self.node_one, self.user)
155+
self.collection_one.collect_object(self.node_one, self.user)
154156

155157
docs = query_collections('Salif Keita')['results']
156158
assert len(docs) == 2
@@ -163,7 +165,8 @@ def test_index_on_submission_privacy_changes(self):
163165
assert len(docs) == 0
164166

165167
# test_submissions_turned_public_are_added_to_index
166-
self.collection_public.collect_object(self.node_private, self.user)
168+
with capture_notifications():
169+
self.collection_public.collect_object(self.node_private, self.user)
167170

168171
docs = query_collections('Salif Keita')['results']
169172
assert len(docs) == 0
@@ -180,10 +183,11 @@ def test_index_on_collection_privacy_changes(self):
180183
docs = query_collections('Salif Keita')['results']
181184
assert len(docs) == 0
182185

183-
self.collection_public.collect_object(self.node_one, self.user)
184-
self.collection_public.collect_object(self.node_two, self.user)
185-
self.collection_public.collect_object(self.node_public, self.user)
186-
self.reg_collection.collect_object(self.reg_public, self.user)
186+
with capture_notifications():
187+
self.collection_public.collect_object(self.node_one, self.user)
188+
self.collection_public.collect_object(self.node_two, self.user)
189+
self.collection_public.collect_object(self.node_public, self.user)
190+
self.reg_collection.collect_object(self.reg_public, self.user)
187191

188192
docs = query_collections('Salif Keita')['results']
189193
assert len(docs) == 4
@@ -232,10 +236,11 @@ def test_collection_submissions_are_removed_from_index_on_delete(self):
232236
docs = query_collections('Salif Keita')['results']
233237
assert len(docs) == 0
234238

235-
self.collection_public.collect_object(self.node_one, self.user)
236-
self.collection_public.collect_object(self.node_two, self.user)
237-
self.collection_public.collect_object(self.node_public, self.user)
238-
self.reg_collection.collect_object(self.reg_public, self.user)
239+
with capture_notifications():
240+
self.collection_public.collect_object(self.node_one, self.user)
241+
self.collection_public.collect_object(self.node_two, self.user)
242+
self.collection_public.collect_object(self.node_public, self.user)
243+
self.reg_collection.collect_object(self.reg_public, self.user)
239244

240245
docs = query_collections('Salif Keita')['results']
241246
assert len(docs) == 4
@@ -249,8 +254,9 @@ def test_collection_submissions_are_removed_from_index_on_delete(self):
249254
assert len(docs) == 0
250255

251256
def test_removed_submission_are_removed_from_index(self):
252-
self.collection_public.collect_object(self.node_one, self.user)
253-
self.reg_collection.collect_object(self.reg_public, self.user)
257+
with capture_notifications():
258+
self.collection_public.collect_object(self.node_one, self.user)
259+
self.reg_collection.collect_object(self.reg_public, self.user)
254260
assert self.node_one.collection_submissions.filter(
255261
machine_state=CollectionSubmissionStates.ACCEPTED
256262
).exists()

0 commit comments

Comments
 (0)