Merge pull request #15837 from edx/waheed/LEARNER-2110-add-activation-key-var-in-sailthru
Add activation_key var to user profile in SailThru.
This commit is contained in:
@@ -145,7 +145,7 @@ REGISTRATION_UTM_PARAMETERS = {
|
||||
}
|
||||
REGISTRATION_UTM_CREATED_AT = 'registration_utm_created_at'
|
||||
# used to announce a registration
|
||||
REGISTER_USER = Signal(providing_args=["user", "profile"])
|
||||
REGISTER_USER = Signal(providing_args=["user", "registration"])
|
||||
|
||||
# Disable this warning because it doesn't make sense to completely refactor tests to appease Pylint
|
||||
# pylint: disable=logging-format-interpolation
|
||||
@@ -2022,7 +2022,7 @@ def create_account_with_params(request, params):
|
||||
)
|
||||
|
||||
# Announce registration
|
||||
REGISTER_USER.send(sender=None, user=user, profile=profile)
|
||||
REGISTER_USER.send(sender=None, user=user, registration=registration)
|
||||
|
||||
create_comments_service_user(user)
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ def add_email_marketing_cookies(sender, response=None, user=None,
|
||||
|
||||
|
||||
@receiver(REGISTER_USER)
|
||||
def email_marketing_register_user(sender, user=None, profile=None,
|
||||
def email_marketing_register_user(sender, user, registration,
|
||||
**kwargs): # pylint: disable=unused-argument
|
||||
"""
|
||||
Called after user created and saved
|
||||
@@ -98,7 +98,7 @@ def email_marketing_register_user(sender, user=None, profile=None,
|
||||
Args:
|
||||
sender: Not used
|
||||
user: The user object for the user being changed
|
||||
profile: The user profile for the user being changed
|
||||
registration: The user registration profile to activate user account
|
||||
kwargs: Not used
|
||||
"""
|
||||
email_config = EmailMarketingConfiguration.current()
|
||||
@@ -110,9 +110,8 @@ def email_marketing_register_user(sender, user=None, profile=None,
|
||||
return
|
||||
|
||||
# perform update asynchronously
|
||||
update_user.delay(
|
||||
_create_sailthru_user_vars(user, user.profile), user.email, site=_get_current_site(), new_user=True
|
||||
)
|
||||
update_user.delay(_create_sailthru_user_vars(user, user.profile, registration=registration), user.email,
|
||||
site=_get_current_site(), new_user=True)
|
||||
|
||||
|
||||
@receiver(USER_FIELD_CHANGED)
|
||||
@@ -161,7 +160,7 @@ def email_marketing_user_field_changed(sender, user=None, table=None, setting=No
|
||||
update_user_email.delay(user.email, old_value)
|
||||
|
||||
|
||||
def _create_sailthru_user_vars(user, profile):
|
||||
def _create_sailthru_user_vars(user, profile, registration=None):
|
||||
"""
|
||||
Create sailthru user create/update vars from user + profile.
|
||||
"""
|
||||
@@ -181,6 +180,9 @@ def _create_sailthru_user_vars(user, profile):
|
||||
sailthru_vars['year_of_birth'] = profile.year_of_birth
|
||||
sailthru_vars['country'] = unicode(profile.country.code)
|
||||
|
||||
if registration:
|
||||
sailthru_vars['activation_key'] = registration.activation_key
|
||||
|
||||
return sailthru_vars
|
||||
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ from email_marketing.tasks import (
|
||||
get_email_cookies_via_sailthru
|
||||
)
|
||||
from openedx.core.djangoapps.lang_pref import LANGUAGE_KEY
|
||||
from student.models import Registration
|
||||
from student.tests.factories import UserFactory, UserProfileFactory
|
||||
from util.json_request import JsonResponse
|
||||
|
||||
@@ -70,9 +71,8 @@ class EmailMarketingTests(TestCase):
|
||||
update_email_marketing_config(enabled=False)
|
||||
self.request_factory = RequestFactory()
|
||||
self.user = UserFactory.create(username='test', email=TEST_EMAIL)
|
||||
self.profile = self.user.profile
|
||||
self.profile.year_of_birth = 1980
|
||||
self.profile.save()
|
||||
self.registration = Registration()
|
||||
self.registration.register(self.user)
|
||||
|
||||
self.request = self.request_factory.get("foo")
|
||||
update_email_marketing_config(enabled=True)
|
||||
@@ -308,14 +308,14 @@ class EmailMarketingTests(TestCase):
|
||||
add_email_marketing_cookies(None)
|
||||
self.assertFalse(mock_log_error.called)
|
||||
|
||||
email_marketing_register_user(None)
|
||||
email_marketing_register_user(None, None, None)
|
||||
self.assertFalse(mock_log_error.called)
|
||||
|
||||
update_email_marketing_config(enabled=True)
|
||||
|
||||
# test anonymous users
|
||||
anon = AnonymousUser()
|
||||
email_marketing_register_user(None, user=anon)
|
||||
email_marketing_register_user(None, anon, None)
|
||||
self.assertFalse(mock_log_error.called)
|
||||
|
||||
email_marketing_user_field_changed(None, user=anon)
|
||||
@@ -443,19 +443,21 @@ class EmailMarketingTests(TestCase):
|
||||
@patch('lms.djangoapps.email_marketing.tasks.update_user.delay')
|
||||
def test_register_user(self, mock_update_user, mock_get_current_request):
|
||||
"""
|
||||
make sure register user call invokes update_user
|
||||
make sure register user call invokes update_user and includes activation_key
|
||||
"""
|
||||
mock_get_current_request.return_value = self.request
|
||||
email_marketing_register_user(None, user=self.user, profile=self.profile)
|
||||
email_marketing_register_user(None, user=self.user, registration=self.registration)
|
||||
self.assertTrue(mock_update_user.called)
|
||||
self.assertEqual(mock_update_user.call_args[0][0]['activation_key'], self.registration.activation_key)
|
||||
|
||||
@patch('lms.djangoapps.email_marketing.tasks.update_user.delay')
|
||||
def test_register_user_no_request(self, mock_update_user):
|
||||
"""
|
||||
make sure register user call invokes update_user
|
||||
make sure register user call invokes update_user and includes activation_key
|
||||
"""
|
||||
email_marketing_register_user(None, user=self.user, profile=self.profile)
|
||||
email_marketing_register_user(None, user=self.user, registration=self.registration)
|
||||
self.assertTrue(mock_update_user.called)
|
||||
self.assertEqual(mock_update_user.call_args[0][0]['activation_key'], self.registration.activation_key)
|
||||
|
||||
@patch('lms.djangoapps.email_marketing.tasks.update_user.delay')
|
||||
def test_register_user_language_preference(self, mock_update_user):
|
||||
@@ -464,12 +466,12 @@ class EmailMarketingTests(TestCase):
|
||||
"""
|
||||
# If the user hasn't set an explicit language preference, we should send the application's default.
|
||||
self.assertIsNone(self.user.preferences.model.get_value(self.user, LANGUAGE_KEY))
|
||||
email_marketing_register_user(None, user=self.user, profile=self.profile)
|
||||
email_marketing_register_user(None, user=self.user, registration=self.registration)
|
||||
self.assertEqual(mock_update_user.call_args[0][0]['ui_lang'], settings.LANGUAGE_CODE)
|
||||
|
||||
# If the user has set an explicit language preference, we should send it.
|
||||
self.user.preferences.create(key=LANGUAGE_KEY, value='es-419')
|
||||
email_marketing_register_user(None, user=self.user, profile=self.profile)
|
||||
email_marketing_register_user(None, user=self.user, registration=self.registration)
|
||||
self.assertEqual(mock_update_user.call_args[0][0]['ui_lang'], 'es-419')
|
||||
|
||||
@patch('email_marketing.signals.crum.get_current_request')
|
||||
|
||||
Reference in New Issue
Block a user