Skip to content

Commit 901e6b2

Browse files
committed
fix mails import for merge
1 parent dc946ab commit 901e6b2

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

admin_tests/users/test_views.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from admin.users import views
2727
from admin.users.forms import UserSearchForm, MergeUserForm
2828
from osf.models.admin_log_entry import AdminLogEntry
29-
from tests.utils import assert_notification
29+
from tests.utils import assert_notification, capture_notifications
3030
from osf.models.notification_type import NotificationType
3131

3232
pytestmark = pytest.mark.django_db
@@ -101,7 +101,11 @@ def test_correct_view_permissions(self):
101101
request.POST = {'emails': ', '.join(user.emails.all().values_list('address', flat=True))}
102102
request.user = user
103103

104-
response = views.ResetPasswordView.as_view()(request, guid=guid)
104+
with capture_notifications() as notifications:
105+
response = views.ResetPasswordView.as_view()(request, guid=guid)
106+
107+
assert len(notifications['emits']) == 1
108+
assert notifications['emits'][0]['type'] == NotificationType.Type.USER_PASSWORD_RESET
105109
self.assertEqual(response.status_code, 302)
106110

107111

api/users/services.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
from django.utils import timezone
33

44
from framework.auth.core import generate_verification_key
5-
from website import settings, mails
5+
from osf.models import NotificationType
6+
from website import settings
67

78

89
def send_password_reset_email(user, email, verification_type='password', institutional=False, **mail_kwargs):
@@ -14,14 +15,14 @@ def send_password_reset_email(user, email, verification_type='password', institu
1415
user.save()
1516

1617
reset_link = furl(settings.DOMAIN).add(path=f'resetpassword/{user._id}/{user.verification_key_v2["token"]}').url
17-
mail_template = mails.FORGOT_PASSWORD if not institutional else mails.FORGOT_PASSWORD_INSTITUTION
1818

19-
mails.send_mail(
20-
to_addr=email,
21-
mail=mail_template,
22-
reset_link=reset_link,
23-
can_change_preferences=False,
24-
**mail_kwargs,
19+
NotificationType.Type.USER_FORGOT_PASSWORD.instance.emit(
20+
destination_address=email,
21+
event_context={
22+
'reset_link': reset_link,
23+
'can_change_preferences': False,
24+
**mail_kwargs,
25+
},
2526
)
2627

2728
return reset_link

0 commit comments

Comments
 (0)