From 910f1c45c3d75cbfa50cd515ad7410e628a0c7b9 Mon Sep 17 00:00:00 2001 From: Sharon Wang <sharon.ran.wang@gmail.com> Date: Tue, 15 Dec 2020 16:58:48 -0500 Subject: [PATCH] test passing --- openedx/core/djangoapps/user_authn/cookies.py | 22 +++++++------- .../user_authn/tests/test_cookies.py | 29 +++++++++++++++---- 2 files changed, 36 insertions(+), 15 deletions(-) diff --git a/openedx/core/djangoapps/user_authn/cookies.py b/openedx/core/djangoapps/user_authn/cookies.py index e26075b9b37..1fbbad2d8dc 100644 --- a/openedx/core/djangoapps/user_authn/cookies.py +++ b/openedx/core/djangoapps/user_authn/cookies.py @@ -196,6 +196,7 @@ def _set_deprecated_user_info_cookie(response, request, user, cookie_settings): } } """ + user_info = _get_user_info_cookie_data(request, user) response.set_cookie( settings.EDXMKTG_USER_INFO_COOKIE_NAME, json.dumps(user_info), @@ -218,6 +219,12 @@ def _set_deprecated_logged_in_cookie(response, cookie_settings): return response +def _convert_to_absolute_uris(request, urls_obj): + """ Convert relative URL paths to absolute URIs """ + for url_name, url_path in six.iteritems(urls_obj): + urls_obj[url_name] = request.build_absolute_uri(url_path) + + return urls_obj def _get_user_info_cookie_data(request, user): """ Returns information that will populate the user info cookie. """ @@ -245,18 +252,13 @@ def _get_user_info_cookie_data(request, user): except User.DoesNotExist: pass - # Convert relative URL paths to absolute URIs - for url_name, url_path in six.iteritems(header_urls): - header_urls[url_name] = request.build_absolute_uri(url_path) + header_urls = _convert_to_absolute_uris(request, header_urls) - - image_urls = [] - if user.profile and user.profile.has_profile_image: - image_urls = _get_user_info_cookie_data(request, user) + image_urls = {} + if user.profile: + image_urls = get_profile_image_urls_for_user(user) - print('****') - print(user) - print(image_urls) + image_urls = _convert_to_absolute_uris(request, image_urls) user_info = { 'version': settings.EDXMKTG_USER_INFO_COOKIE_VERSION, diff --git a/openedx/core/djangoapps/user_authn/tests/test_cookies.py b/openedx/core/djangoapps/user_authn/tests/test_cookies.py index 7b2f0158d48..0f907ae0739 100644 --- a/openedx/core/djangoapps/user_authn/tests/test_cookies.py +++ b/openedx/core/djangoapps/user_authn/tests/test_cookies.py @@ -10,19 +10,23 @@ from django.urls import reverse from edx_rest_framework_extensions.auth.jwt.decoder import jwt_decode_handler from edx_rest_framework_extensions.auth.jwt.middleware import JwtAuthCookieMiddleware from mock import MagicMock, patch +from datetime import date from openedx.core.djangoapps.user_api.accounts.utils import retrieve_last_sitewide_block_completed from openedx.core.djangoapps.user_authn import cookies as cookies_api from openedx.core.djangoapps.user_authn.tests.utils import setup_login_oauth_client from openedx.core.djangolib.testing.utils import skip_unless_lms from common.djangoapps.student.tests.factories import AnonymousUserFactory, UserFactory, UserProfileFactory +from openedx.core.djangoapps.profile_images.tests.helpers import make_image_file +from openedx.core.djangoapps.profile_images.images import create_profile_images +from openedx.core.djangoapps.user_api.accounts.image_helpers import get_profile_image_names class CookieTests(TestCase): def setUp(self): super(CookieTests, self).setUp() self.user = UserFactory.create() - self.user.profile = UserProfileFactory.create() + self.user.profile = UserProfileFactory.create(user=self.user) self.request = RequestFactory().get('/') self.request.user = self.user self.request.session = self._get_stub_session() @@ -32,6 +36,18 @@ class CookieTests(TestCase): get_expiry_age=lambda: max_age, ) + def _get_expected_image_urls(self): + expected_image_urls = { + 'full': '/static/default_500.png', + 'large': '/static/default_120.png', + 'medium': '/static/default_50.png', + 'small': '/static/default_30.png' + } + + expected_image_urls = cookies_api._convert_to_absolute_uris(self.request, expected_image_urls) + + return expected_image_urls + def _get_expected_header_urls(self): expected_header_urls = { 'logout': reverse('logout'), @@ -40,9 +56,7 @@ class CookieTests(TestCase): 'learner_profile': reverse('learner_profile', kwargs={'username': self.user.username}), } - # Convert relative URL paths to absolute URIs - for url_name, url_path in six.iteritems(expected_header_urls): - expected_header_urls[url_name] = self.request.build_absolute_uri(url_path) + expected_header_urls = cookies_api._convert_to_absolute_uris(self.request, expected_header_urls) return expected_header_urls @@ -86,16 +100,21 @@ class CookieTests(TestCase): @skip_unless_lms def test_get_user_info_cookie_data(self): + with make_image_file() as image_file: + create_profile_images(image_file, get_profile_image_names(self.user.username)) + self.user.profile.profile_image_uploaded_at = date.today() + self.user.profile.save() + actual = cookies_api._get_user_info_cookie_data(self.request, self.user) # pylint: disable=protected-access expected = { 'version': settings.EDXMKTG_USER_INFO_COOKIE_VERSION, 'username': self.user.username, 'header_urls': self._get_expected_header_urls(), + 'image_urls': self._get_expected_image_urls(), } self.assertDictEqual(actual, expected) - self.assertEqual(0,1) def test_set_logged_in_cookies_anonymous_user(self): anonymous_user = AnonymousUserFactory() -- GitLab