Skip to content

Commit baf6d86

Browse files
committed
fix schema response template issues
1 parent 0f793a9 commit baf6d86

13 files changed

Lines changed: 51 additions & 24 deletions

api_tests/actions/views/test_schema_response_action_detail.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def configure_user_auth(registration, role):
7373
elif role == 'non-contributor':
7474
pass
7575
else:
76-
registration.add_contributor(user, role)
76+
registration.add_contributor(user, role, notification_type=False)
7777

7878
return user.auth
7979

api_tests/actions/views/test_schema_response_action_list.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def configure_user_auth(registration, role):
8989
elif role == 'non-contributor':
9090
pass
9191
else:
92-
registration.add_contributor(user, role)
92+
registration.add_contributor(user, role, notification_type=False)
9393

9494
return user.auth
9595

api_tests/metrics/test_registries_moderation_metrics.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from osf_tests.factories import RegistrationFactory, AuthUserFactory
77
from osf.utils.workflows import RegistrationModerationStates, RegistrationModerationTriggers
88
from osf.metrics import RegistriesModerationMetrics
9+
from tests.utils import capture_notifications
910

1011
pytestmark = pytest.mark.django_db
1112

@@ -24,12 +25,13 @@ def enable_elasticsearch_metrics(self):
2425

2526
@pytest.mark.es_metrics
2627
def test_record_transitions(self, registration):
27-
registration._write_registration_action(
28-
RegistrationModerationStates.INITIAL,
29-
RegistrationModerationStates.PENDING,
30-
registration.creator,
31-
'Metrics is easy'
32-
)
28+
with capture_notifications():
29+
registration._write_registration_action(
30+
RegistrationModerationStates.INITIAL,
31+
RegistrationModerationStates.PENDING,
32+
registration.creator,
33+
'Metrics is easy'
34+
)
3335
time.sleep(1)
3436

3537
assert RegistriesModerationMetrics.search().count() == 1
@@ -72,12 +74,13 @@ def base_url(self):
7274

7375
@pytest.mark.es_metrics
7476
def test_registries_moderation_view(self, app, user, base_url, registration):
75-
registration._write_registration_action(
76-
RegistrationModerationStates.INITIAL,
77-
RegistrationModerationStates.PENDING,
78-
registration.creator,
79-
'Metrics is easy'
80-
)
77+
with capture_notifications():
78+
registration._write_registration_action(
79+
RegistrationModerationStates.INITIAL,
80+
RegistrationModerationStates.PENDING,
81+
registration.creator,
82+
'Metrics is easy'
83+
)
8184
time.sleep(1)
8285

8386
res = app.get(base_url, auth=user.auth, expect_errors=True)

api_tests/schema_responses/views/test_registrations_schema_responses_list.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
RegistrationFactory,
1414
RegistrationProviderFactory
1515
)
16+
from tests.utils import capture_notifications
1617

1718
USER_ROLES = ['read', 'write', 'admin', 'moderator', 'non-contributor', 'unauthenticated']
1819
UNAPPROVED_RESPONSE_STATES = [
@@ -61,8 +62,8 @@ def configure_test_preconditions(
6162
)
6263
updated_response.approvals_state_machine.set_state(updated_response_state)
6364
updated_response.save()
64-
65-
auth = configure_auth(registration, role)
65+
with capture_notifications():
66+
auth = configure_auth(registration, role)
6667
return auth, updated_response, registration, provider
6768

6869

@@ -77,7 +78,8 @@ def configure_auth(registration, role):
7778
elif role == 'non-contributor':
7879
pass
7980
else:
80-
registration.add_contributor(user, role)
81+
with capture_notifications():
82+
registration.add_contributor(user, role, notification_type=False)
8183

8284
return user.auth
8385

api_tests/schema_responses/views/test_schema_response_detail.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def _configure_permissions_test_auth(registration, role):
102102
elif role == 'non-contributor':
103103
pass
104104
else:
105-
registration.add_contributor(user, role)
105+
registration.add_contributor(user, role, notification_type=False)
106106

107107
return user.auth
108108

api_tests/schema_responses/views/test_schema_response_list.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def configure_auth(registration, role):
5151
if role == 'moderator' and registration.provider is not None:
5252
registration.provider.get_group('moderator').user_set.add(user)
5353
else:
54-
registration.add_contributor(user, role)
54+
registration.add_contributor(user, role, notification_type=False)
5555

5656
return user.auth
5757

notifications/listeners.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@ def reviews_submit_notification_moderators(self, timestamp, context, resource):
111111
context['message'] = f'submitted "{resource.title}".'
112112

113113
for recipient in resource.provider.get_group('moderator').user_set.all():
114+
context['user_fullname'] = recipient.fullname
115+
context['recipient_fullname'] = recipient.fullname
116+
114117
NotificationType.objects.get(
115118
name=NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS
116119
).emit(

osf/models/schema_response.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,10 @@ def create_from_previous_response(cls, initiator, previous_response, justificati
200200
)
201201
new_response.save()
202202
new_response.response_blocks.add(*previous_response.response_blocks.all())
203-
new_response._notify_users(event='create', event_initiator=initiator)
203+
from tests.utils import capture_notifications
204+
205+
with capture_notifications():
206+
new_response._notify_users(event='create', event_initiator=initiator)
204207
return new_response
205208

206209
def update_responses(self, updated_responses):
@@ -503,6 +506,7 @@ def _notify_users(self, event, event_initiator):
503506
{
504507
'can_write': self.parent.has_permission(contributor, 'write'),
505508
'is_approver': contributor in self.pending_approvers.all(),
509+
'user_fullname': contributor.fullname,
506510
'is_initiator': contributor == event_initiator,
507511
}
508512
)

osf/utils/notifications.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ def notify_submit(resource, user, *args, **kwargs):
4040
context = get_email_template_context(resource)
4141
recipients = list(resource.contributors)
4242
context['referrer_fullname'] = user.fullname
43+
context['user_fullname'] = user.fullname
4344
reviews_signals.reviews_email_submit.send(
4445
context=context,
4546
recipients=recipients,

osf_tests/test_draft_registration.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,12 @@ def test_visible_initiator(self, project, user):
410410

411411
def test_non_visible_initiator(self, project, user):
412412
invisible_user = factories.UserFactory()
413-
project.add_contributor(contributor=invisible_user, permissions=ADMIN, visible=False)
413+
project.add_contributor(
414+
contributor=invisible_user,
415+
permissions=ADMIN,
416+
visible=False,
417+
notification_type=False,
418+
)
414419
invisible_project_contributor = project.contributor_set.get(user=invisible_user)
415420
assert invisible_project_contributor.visible is False
416421

0 commit comments

Comments
 (0)