Files
edx-platform/common/djangoapps/util/tests/test_enterprise_helpers.py
2017-02-08 13:04:54 -05:00

104 lines
4.4 KiB
Python

"""
Test the enterprise app helpers
"""
import unittest
from django.conf import settings
import mock
from util.enterprise_helpers import (
enterprise_enabled,
insert_enterprise_pipeline_elements,
set_enterprise_branding_filter_param,
get_enterprise_branding_filter_param,
get_enterprise_customer_logo_url
)
@unittest.skipUnless(settings.ROOT_URLCONF == 'lms.urls', 'Test only valid in lms')
class TestEnterpriseHelpers(unittest.TestCase):
"""
Test enterprise app helpers
"""
@mock.patch('util.enterprise_helpers.enterprise_enabled')
def test_utils_with_enterprise_disabled(self, mock_enterprise_enabled):
"""
Test that the enterprise app not being available causes
the utilities to return the expected default values.
"""
mock_enterprise_enabled.return_value = False
self.assertEqual(insert_enterprise_pipeline_elements(None), None)
def test_enterprise_enabled(self):
"""
The test settings inherit from common, which have the enterprise
app installed; therefore, it should appear installed here.
"""
self.assertTrue(enterprise_enabled())
def test_set_enterprise_branding_filter_param(self):
"""
Test that the enterprise customer branding parameters are setting correctly.
"""
ec_uuid = '97b4a894-cea9-4103-8f9f-2c5c95a58ba3'
provider_id = 'test-provider-idp'
request = mock.MagicMock(session={}, GET={'ec_src': ec_uuid})
set_enterprise_branding_filter_param(request, provider_id=None)
self.assertEqual(get_enterprise_branding_filter_param(request), {'ec_uuid': ec_uuid})
set_enterprise_branding_filter_param(request, provider_id=provider_id)
self.assertEqual(get_enterprise_branding_filter_param(request), {'provider_id': provider_id})
@mock.patch('util.enterprise_helpers.enterprise_enabled', mock.Mock(return_value=True))
def test_get_enterprise_customer_logo_url(self):
"""
Test test_get_enterprise_customer_logo_url return the logo url as desired.
"""
ec_uuid = '97b4a894-cea9-4103-8f9f-2c5c95a58ba3'
provider_id = 'test-provider-idp'
request = mock.MagicMock(session={}, GET={'ec_src': ec_uuid})
branding_info = mock.Mock(
logo=mock.Mock(
url='/test/image.png'
)
)
set_enterprise_branding_filter_param(request, provider_id=None)
with mock.patch('enterprise.utils.get_enterprise_branding_info_by_ec_uuid', return_value=branding_info):
logo_url = get_enterprise_customer_logo_url(request)
self.assertEqual(logo_url, '/test/image.png')
set_enterprise_branding_filter_param(request, provider_id)
with mock.patch('enterprise.utils.get_enterprise_branding_info_by_provider_id', return_value=branding_info):
logo_url = get_enterprise_customer_logo_url(request)
self.assertEqual(logo_url, '/test/image.png')
@mock.patch('util.enterprise_helpers.enterprise_enabled', mock.Mock(return_value=False))
def test_get_enterprise_customer_logo_url_return_none(self):
"""
Test get_enterprise_customer_logo_url return 'None' when enterprise application is not installed.
"""
request = mock.MagicMock(session={})
branding_info = mock.Mock()
set_enterprise_branding_filter_param(request, 'test-idp')
with mock.patch('enterprise.utils.get_enterprise_branding_info_by_provider_id', return_value=branding_info):
logo_url = get_enterprise_customer_logo_url(request)
self.assertEqual(logo_url, None)
@mock.patch('util.enterprise_helpers.enterprise_enabled', mock.Mock(return_value=True))
@mock.patch('util.enterprise_helpers.get_enterprise_branding_filter_param', mock.Mock(return_value=None))
def test_get_enterprise_customer_logo_url_return_none_when_param_missing(self):
"""
Test get_enterprise_customer_logo_url return 'None' when filter parameters are missing.
"""
request = mock.MagicMock(session={})
branding_info = mock.Mock()
set_enterprise_branding_filter_param(request, provider_id=None)
with mock.patch('enterprise.utils.get_enterprise_branding_info_by_provider_id', return_value=branding_info):
logo_url = get_enterprise_customer_logo_url(request)
self.assertEqual(logo_url, None)