Merge pull request #37504 from Pearson-Advance/felipeb/learning-microfrontend-url-site-aware
feat: make LEARNING_MICROFRONTEND_URL site aware.
This commit is contained in:
@@ -73,9 +73,11 @@ def send_ace_message(goal, session_id):
|
||||
message_context = get_base_template_context(site)
|
||||
|
||||
course_home_url = get_learning_mfe_home_url(course_key=goal.course_key, url_fragment='home')
|
||||
|
||||
goals_unsubscribe_url = f'{settings.LEARNING_MICROFRONTEND_URL}/goal-unsubscribe/{goal.unsubscribe_token}'
|
||||
|
||||
learning_microfrontend_url = configuration_helpers.get_value(
|
||||
'LEARNING_MICROFRONTEND_URL',
|
||||
settings.LEARNING_MICROFRONTEND_URL,
|
||||
)
|
||||
goals_unsubscribe_url = f'{learning_microfrontend_url}/goal-unsubscribe/{goal.unsubscribe_token}'
|
||||
language = get_user_preference(user, LANGUAGE_KEY)
|
||||
|
||||
# Code to allow displaying different banner images for different languages
|
||||
|
||||
@@ -12,6 +12,7 @@ import ddt
|
||||
from django.conf import settings
|
||||
from django.core.management import call_command
|
||||
from django.test import TestCase
|
||||
from django.test.utils import override_settings
|
||||
from edx_toggles.toggles.testutils import override_waffle_flag
|
||||
from freezegun import freeze_time
|
||||
from waffle import get_waffle_flag_model # pylint: disable=invalid-django-waffle-import
|
||||
@@ -235,6 +236,45 @@ class TestGoalReminderEmailCommand(TestCase):
|
||||
send_ace_message(goal, str(uuid.uuid4()))
|
||||
assert mock_ace.called is value
|
||||
|
||||
def test_goals_unsubscribe_url_uses_site_config(self):
|
||||
"""Test goals unsubscribe URL uses site-configured MFE base."""
|
||||
goal = self.make_valid_goal()
|
||||
with mock.patch('lms.djangoapps.course_goals.management.commands.goal_reminder_email.ace.send') as mock_ace:
|
||||
with mock.patch(
|
||||
'lms.djangoapps.course_goals.management.commands.goal_reminder_email.configuration_helpers.get_value',
|
||||
return_value='https://learning.siteconf',
|
||||
) as mock_get_value:
|
||||
assert send_ace_message(goal, str(uuid.uuid4())) is True
|
||||
|
||||
assert mock_ace.call_count == 1
|
||||
msg = mock_ace.call_args[0][0]
|
||||
assert msg.context[
|
||||
'goals_unsubscribe_url'
|
||||
] == f'https://learning.siteconf/goal-unsubscribe/{goal.unsubscribe_token}'
|
||||
mock_get_value.assert_any_call('LEARNING_MICROFRONTEND_URL', settings.LEARNING_MICROFRONTEND_URL)
|
||||
|
||||
def test_goals_unsubscribe_url_falls_back_to_settings(self):
|
||||
"""Test goals unsubscribe URL falls back to settings when site config is absent."""
|
||||
default_url = 'https://learning.default'
|
||||
goal = self.make_valid_goal()
|
||||
with override_settings(LEARNING_MICROFRONTEND_URL=default_url):
|
||||
with mock.patch(
|
||||
'lms.djangoapps.course_goals.management.commands.goal_reminder_email.ace.send',
|
||||
) as mock_ace:
|
||||
with mock.patch(
|
||||
(
|
||||
'lms.djangoapps.course_goals.management.commands.'
|
||||
'goal_reminder_email.configuration_helpers.get_value'
|
||||
),
|
||||
side_effect=lambda k, d: d,
|
||||
) as mock_get_value:
|
||||
assert send_ace_message(goal, str(uuid.uuid4())) is True
|
||||
|
||||
assert mock_ace.call_count == 1
|
||||
msg = mock_ace.call_args[0][0]
|
||||
assert msg.context['goals_unsubscribe_url'] == f'{default_url}/goal-unsubscribe/{goal.unsubscribe_token}'
|
||||
mock_get_value.assert_any_call('LEARNING_MICROFRONTEND_URL', default_url)
|
||||
|
||||
|
||||
class TestGoalReminderEmailSES(TestCase):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user